ExcelのCEILING.PRECISE関数の使い方|常に大きい方向へ切り上げ

スポンサーリンク

Excelで数値を切り上げたいとき、負の数が入ると思った方向に丸まらなくて困りますよね。

CEILING関数は負の数に負の基準値を指定しないとエラーになります。CEILING.MATH関数はmode引数で方向を切り替えられます。ただ、設定を間違えると逆方向に丸まってしまうんですよね。

そんなときに便利なのがCEILING.PRECISE関数です。引数の符号を気にせず、常に数直線の大きい方向へ切り上げてくれます。この記事ではExcelのCEILING.PRECISE関数について、基本の書き方からCEILING.MATHとの違いまで紹介します。

ExcelのCEILING.PRECISE関数とは?

CEILING.PRECISE関数(読み方: シーリング プリサイス)は、数値を指定した倍数の方向へ、常に大きい方向に切り上げる関数です。

名前の「PRECISE」は「正確な・精密な」という意味です。CEILING関数の改良版のひとつにあたります。

CEILING.PRECISE関数の最大の特徴は「方向が固定」されていることです。正の数でも負の数でも、必ず数直線上の大きい方向に切り上がります。基準値に負の数を指定しても絶対値が使われるので、結果は変わりませんよ。

CEILING.PRECISE関数にできることをまとめると、次のとおりです。

  • 正の数を指定した倍数の方向へ切り上げる
  • 負の数を常に大きい方向(0に近い方向)へ切り上げる
  • 基準値の符号を無視する(絶対値で処理される)
  • 基準値を省略すると整数に切り上げる

NOTE

CEILING.PRECISE関数はExcel 2010以降で利用できます。Excel 2007以前をお使いの場合はCEILING関数を使いましょう。

CEILING.PRECISE関数の書き方(構文と引数)

基本構文

=CEILING.PRECISE(数値, [基準値])

カッコの中に「切り上げたい数値」と「倍数」を指定します。CEILING.MATH関数と違って、モード引数はありません。

引数の説明

引数必須/任意説明
数値必須切り上げたい数値やセル参照、数式
基準値任意切り上げる基準となる倍数(省略時は1)

基準値を省略すると「1」が使われます。つまり整数への切り上げですね。

基準値に負の数を指定しても、絶対値として扱われます。たとえば基準値を「-5」にしても「5」と同じ結果になりますよ。

TIP

CEILING.MATH関数には第3引数(モード)がありますが、CEILING.PRECISE関数にはありません。常に大きい方向に固定されているのがポイントです。

基本的な使い方

正の数を整数に切り上げる

いちばんシンプルな例です。セルA2に小数が入っているとします。

=CEILING.PRECISE(A2)

A2が「3.2」なら結果は「4」です。基準値を省略すると整数への切り上げになります。

正の数を100単位に切り上げる

=CEILING.PRECISE(A2, 100)

A2が「1,280」なら結果は「1,300」です。正の数ではCEILING関数CEILING.MATH関数と同じ結果になりますよ。

負の数を大きい方向に切り上げる

ここがCEILING.PRECISE関数の特徴です。

=CEILING.PRECISE(-7.3)

結果は「-7」です。数直線で見ると「-7.3」より大きい整数は「-7」なので、0に近い方向に切り上がります。

CEILING.PRECISE関数は常にこの方向です。CEILING.MATH関数のようにモード引数で方向を変えることはできません。

負の数を倍数で切り上げる

=CEILING.PRECISE(-23, 10)

結果は「-20」です。「-23」より大きい10の倍数は「-20」ですね。0に近い方向に丸まりますよ。

基準値に負の数を指定した場合

=CEILING.PRECISE(7.3, -2)

結果は「8」です。基準値の「-2」は絶対値の「2」として扱われます。「7.3」を2の倍数で切り上げると「8」ですね。

ちょうど倍数のときの動作

元の値がすでに倍数ちょうどの場合は、切り上げは行われません。

=CEILING.PRECISE(1500, 500)

結果は「1500」のままです。端数がなければ値はそのまま返ります。

CEILING.MATHとの違い(負の数の挙動比較)

CEILING.PRECISE関数とCEILING.MATH関数は、正の数では結果が同じです。違いが出るのは負の数のときですよ。

正の数での比較

数式結果
=CEILING.PRECISE(1280, 100)1300
=CEILING.MATH(1280, 100)1300

正の数ではどちらも同じ結果です。

負の数での比較

ここが2つの関数の大きな違いです。「-1280」を100単位で丸めてみましょう。

数式結果方向
=CEILING.PRECISE(-1280, 100)-12000に近づく(大きい方向)
=CEILING.MATH(-1280, 100)-12000に近づく(デフォルト)
=CEILING.MATH(-1280, 100, 1)-13000から離れる(mode指定)

デフォルトでは同じ結果です。違いはCEILING.MATHがmode引数で「0から離れる方向」にも切り替えられること。CEILING.PRECISEにはこの切り替え機能がありません。

引数の数の違い

比較項目CEILING.PRECISECEILING.MATH
引数の数2つ(数値、基準値)3つ(数値、基準値、モード)
負の数の方向常に大きい方向(固定)デフォルトは大きい方向、mode指定で逆方向も可
基準値の符号無視(絶対値を使用)無視(絶対値を使用)
対応バージョンExcel 2010以降Excel 2013以降

どちらを使うべき?

  • 負の数を常に大きい方向に切り上げたい → CEILING.PRECISEがシンプル
  • 場面によって丸めの方向を切り替えたい → CEILING.MATH関数
  • Excel 2010を使っている → CEILING.PRECISEのみ利用可能
  • 引数を少なくしてシンプルに書きたい → CEILING.PRECISEがおすすめ

実務で使える活用パターン

予算申請を1,000円単位に切り上げる

経費の概算見積りでは、端数を切り上げて提出することが多いですよね。

=CEILING.PRECISE(A2, 1000)

A2が「12,340」なら結果は「13,000」です。正の数だけならCEILING関数でも同じ結果になりますよ。

差額データを100単位で切り上げる

前年比などの差額データには正の数と負の数が混在します。CEILING.PRECISE関数なら符号を気にせず100円単位に切り上げられますよ。

=CEILING.PRECISE(A2, 100)

A2が「-456」なら「-400」に、「567」なら「600」になります。どちらも大きい方向に丸まりますよ。

時間を15分単位に切り上げる

勤怠管理で出勤時刻を15分単位に切り上げたいケースです。Excelでは時刻をシリアル値(1日=1の数値)で管理しています。

=CEILING.PRECISE(A2, "0:15")

A2が「8:07」なら結果は「8:15」です。時刻形式で指定できるので、シリアル値を意識しなくても大丈夫ですよ。

切り捨てで処理したい場合はFLOOR.MATH関数を使いましょう。

価格を50円単位に切り上げる

商品の販売価格を50円単位に揃えたいケースです。

=CEILING.PRECISE(A2, 50)

A2が「1,230」なら結果は「1,250」です。ROUND関数の四捨五入と違い、常に切り上げなので端数が出ることはありません。

よくあるエラーと対処法

CEILING.PRECISE関数はシンプルな設計なので、エラーは比較的少ないです。

エラー原因対処法
#VALUE!数値や基準値に文字列が入っているセル参照先が数値かどうか確認する
#NAME?関数名のスペルミス、またはExcel 2007以前関数名を確認。2007以前ならCEILING関数を使う
結果が0基準値に0を指定している0以外の基準値を指定する

CEILING関数で起きる#NUM!エラーが起きない

CEILING関数では「正の数に負の基準値」を指定すると#NUM!エラーになります。CEILING.PRECISE関数ではこのエラーは発生しません。

=CEILING(1280, -100)           → #NUM!エラー
=CEILING.PRECISE(1280, -100)   → 1300(エラーにならない)

基準値の符号を気にせず使えるのがCEILING.PRECISEの利点ですよ。

基準値に0を指定したとき

基準値に0を指定すると結果は0になります。

=CEILING.PRECISE(1234, 0)

結果は「0」です。基準値のセルが空や0になっていないか確認しましょう。

似た関数との違い・使い分け

Excelには切り上げ・切り捨て系の関数が多数あります。用途に応じて使い分けましょう。

関数丸め方第2引数負の数の方向
CEILING.PRECISE倍数で切り上げ(常に大きい方向)基準値(倍数)常に大きい方向(固定)
CEILING.MATH倍数で切り上げ基準値(倍数)mode引数で方向制御
CEILING倍数で切り上げ基準値(倍数)負の基準値が必要
FLOOR.MATH倍数で切り捨て基準値(倍数)mode引数で方向制御
ROUND四捨五入桁数正負どちらも対応
ROUNDUP常に切り上げ桁数0から離れる方向

ISO.CEILING関数との関係

ISO.CEILING関数はCEILING.PRECISE関数と同じ動作をします。ISO(国際標準化機構)の規格に準拠した名前で用意された関数です。

=CEILING.PRECISE(A2, 100)
=ISO.CEILING(A2, 100)

どちらも結果は同じです。お好みで使い分けてください。Googleスプレッドシートではどちらの名前でも使えますよ。

切り上げ関数を選ぶフローチャート

迷ったときは次の順番で判断してみてください。

  1. 桁数で指定したい? → ROUNDUP関数
  2. 倍数で指定したい? → 次へ
  3. 負の数は扱う? → No → CEILING関数でOK
  4. 方向を切り替えたい? → Yes → CEILING.MATH関数
  5. 常に大きい方向でいい? → Yes → CEILING.PRECISE関数

まとめ

CEILING.PRECISE関数は、数値を指定した倍数の方向へ、常に大きい方向に切り上げる関数です。引数が2つだけのシンプルな構成が特徴ですよ。

ポイントを整理します。

  • 構文は =CEILING.PRECISE(数値, [基準値]) の2引数
  • Excel 2010以降で利用可能
  • 正の数ではCEILING関数CEILING.MATH関数と結果は同じ
  • 負の数では常に大きい方向(0に近づく方向)に切り上がる
  • 基準値の符号は無視される(絶対値で処理)
  • CEILING.MATH関数はmode引数で方向切替が可能、CEILING.PRECISEは大きい方向に固定
  • ISO.CEILING関数と同じ動作
  • FLOOR.MATH関数はペアの切り捨て関数

まずは =CEILING.PRECISE(A1, 100) で100単位の切り上げから試してみてください。方向を気にせず使えるシンプルさが、CEILING.PRECISE関数のいちばんの魅力です。

タイトルとURLをコピーしました