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) | -1200 | 0に近づく(大きい方向) |
| =CEILING.MATH(-1280, 100) | -1200 | 0に近づく(デフォルト) |
| =CEILING.MATH(-1280, 100, 1) | -1300 | 0から離れる(mode指定) |
デフォルトでは同じ結果です。違いはCEILING.MATHがmode引数で「0から離れる方向」にも切り替えられること。CEILING.PRECISEにはこの切り替え機能がありません。
引数の数の違い
| 比較項目 | CEILING.PRECISE | CEILING.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スプレッドシートではどちらの名前でも使えますよ。
切り上げ関数を選ぶフローチャート
迷ったときは次の順番で判断してみてください。
- 桁数で指定したい? → ROUNDUP関数
- 倍数で指定したい? → 次へ
- 負の数は扱う? → No → CEILING関数でOK
- 方向を切り替えたい? → Yes → CEILING.MATH関数
- 常に大きい方向でいい? → 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関数のいちばんの魅力です。
