Excelで数値を100単位や1,000単位に切り上げたいとき、負の数が混ざると面倒ですよね。
CEILING関数を使うと、負の数には負の倍数を指定しないとエラーになってしまいます。正負が混在するデータだと、IF関数で場合分けすることになって大変ですよね。
そんなときに便利なのがCEILING.MATH関数です。正の数でも負の数でも、倍数の符号を気にせず切り上げできます。この記事ではExcelのCEILING.MATH関数について、基本の書き方から実務での使いどころまで紹介します。
ExcelのCEILING.MATH関数とは?
CEILING.MATH関数(読み方: シーリング マス)は、数値を指定した倍数の方向へ切り上げる関数です。
名前の「MATH」は「Mathematics(数学)」の略です。CEILING関数の改良版にあたります。
CEILING関数との最大の違いは「負の数の切り上げ方向」です。CEILING関数は負の数に負の倍数を指定する必要があります。一方、CEILING.MATH関数は正の倍数のまま使えますよ。さらにmode引数で丸めの方向を制御できるのもポイントです。
CEILING.MATH関数にできることをまとめると、次のとおりです。
- 正の数を指定した倍数の方向へ切り上げる
- 負の数を「大きい方向(0に近い方向)」に切り上げる(デフォルト)
- 負の数を「小さい方向(0から離れる方向)」に切り上げることもできる(mode指定)
- 倍数を省略すると整数に切り上げる
NOTE
CEILING.MATH関数はExcel 2013以降で利用できます。Excel 2010以前をお使いの場合はCEILING関数を使いましょう。
CEILING.MATH関数の書き方(構文と引数)
基本構文
=CEILING.MATH(数値, [基準値], [モード])
カッコの中に「切り上げたい数値」「倍数」「丸めの方向」を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 数値 | 必須 | 切り上げたい数値やセル参照、数式 |
| 基準値 | 任意 | 切り上げる基準となる倍数(省略時は1) |
| モード | 任意 | 負の数の丸め方向(省略時は0) |
基準値を省略すると「1」が使われます。つまり整数への切り上げですね。
モードは正の数には影響しません。負の数のときだけ動作が変わります。
| モード | 負の数の丸め方向 | 例: CEILING.MATH(-7.3, 1, モード) |
|---|---|---|
| 0(デフォルト) | 大きい方向(0に近づく) | -7 |
| 0以外(例: 1) | 小さい方向(0から離れる) | -8 |
TIP
モードは「0以外の値」なら何を指定しても同じ動作です。0か0以外かの判定ですよ。
基本的な使い方
正の数を整数に切り上げる
いちばんシンプルな例です。セルA2に小数が入っているとします。
=CEILING.MATH(A2)
A2が「3.2」なら結果は「4」です。基準値もモードも省略すると、整数への切り上げになります。
正の数を100単位に切り上げる
=CEILING.MATH(A2, 100)
A2が「1,280」なら結果は「1,300」です。CEILING関数でも同じ結果になります。正の数ではどちらを使っても変わりませんよ。
負の数を大きい方向に切り上げる(デフォルト)
ここからがCEILING.MATH関数の出番です。
=CEILING.MATH(-7.3)
結果は「-7」です。モードを省略(=0)すると、0に近い方向に丸めます。数直線で見ると「-7.3」より大きい整数「-7」に切り上がりますよ。
負の数を小さい方向に切り上げる(モード指定)
=CEILING.MATH(-7.3, 1, 1)
結果は「-8」です。モードに0以外の値を入れると、0から離れる方向に丸めます。数直線で見ると「-7.3」より小さい整数「-8」になりますよ。
ちょうど倍数のときの動作
元の値がすでに倍数ちょうどの場合は、切り上げは行われません。
=CEILING.MATH(1500, 500)
結果は「1500」のままです。端数がなければ値はそのまま返ります。
実務で使える活用パターン
予算申請を1,000円単位に切り上げる
経費の概算見積りや予算申請では、端数を切り上げて提出することが多いですよね。
=CEILING.MATH(A2, 1000)
A2が「12,340」なら結果は「13,000」です。金額が正の数だけならCEILING関数でも同じ結果になります。ただし、差額や調整費で負の数が混じる可能性がある場合はCEILING.MATHが安心ですよ。
ROUND関数で四捨五入した金額と比較すれば、端数の影響範囲も確認できます。
損益データの100単位での切り上げ
損益データには正の数(利益)と負の数(損失)が混在します。100円単位で切り上げたいとき、CEILING関数だと符号によって倍数を変える必要がありますよね。
=CEILING.MATH(A2, 100)
A2が「-456」なら「-400」に、「567」なら「600」になります。符号に関係なく同じ数式で処理できるのがメリットですよ。
時間を15分単位に切り上げる
勤怠管理で出勤時刻を15分単位に切り上げたいケースです。Excelでは時刻をシリアル値(1日=1の数値)で管理しています。
=CEILING.MATH(A2, "0:15")
A2が「8:07」なら結果は「8:15」です。「0:15」と時刻形式で指定できるので、シリアル値を意識しなくても大丈夫ですよ。
切り捨てで処理したい場合はFLOOR.MATH関数を使いましょう。
mode指定で「安全側」に丸める
在庫の過不足計算で、マイナス(不足)を大きく見積もりたいケースです。
=CEILING.MATH(C2, 10, 1)
C2が「-23」なら「-30」になります。不足数を多めに見積もることで発注漏れを防げますよ。
よくあるエラーと対処法
CEILING.MATH関数はCEILING関数よりエラーが起きにくい設計です。それでも注意点はあります。
| エラー | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 数値や基準値に文字列が入っている | セル参照先が数値かどうか確認する |
| #NAME? | 関数名のスペルミス、またはExcel 2010以前 | 関数名を確認。2010以前ならCEILING関数を使う |
| 結果が0 | 基準値に0を指定している | 0以外の基準値を指定する |
| 想定と逆の方向に丸まる | モードの指定が逆 | モード=0(大きい方向)と0以外(小さい方向)を確認する |
CEILING関数で起きる#NUM!エラーが起きない
CEILING関数では「正の数 + 負の基準値」で#NUM!エラーになります。CEILING.MATH関数ではこのパターンのエラーは発生しません。
=CEILING(1280, -100) → #NUM!エラー
=CEILING.MATH(1280, -100) → 1300(エラーにならない)
基準値の符号を気にせず使えるのがCEILING.MATHの大きな利点ですよ。
基準値に0を指定したとき
基準値に0を指定すると結果は0になります。
=CEILING.MATH(1234, 0)
結果は「0」です。基準値のセルが空や0になっていないか確認しましょう。
CEILING関数との違い(負の数の挙動比較)
CEILING.MATH関数とCEILING関数の違いは、負の数の扱いに集中しています。正の数では結果は同じですよ。
正の数での比較
| 数式 | 結果 |
|---|---|
| =CEILING(1280, 100) | 1300 |
| =CEILING.MATH(1280, 100) | 1300 |
正の数ではどちらも同じ結果です。
負の数での比較
ここが2つの関数の大きな違いです。「-1280」を100単位で丸めてみましょう。
| 数式 | 結果 | 方向 |
|---|---|---|
| =CEILING(-1280, -100) | -1200 | 0に近づく |
| =CEILING.MATH(-1280, 100) | -1200 | 0に近づく(デフォルト) |
| =CEILING.MATH(-1280, 100, 1) | -1300 | 0から離れる |
CEILING関数で負の数を扱うには「負の基準値」を指定する必要があります。正の基準値を指定すると#NUM!エラーです。
一方、CEILING.MATH関数は基準値を正のまま使えます。第3引数のモードで方向を切り替えるだけですよ。
どちらを使うべき?
- 正の数だけ扱う → どちらでもOK
- 負の数も扱う → CEILING.MATH関数がおすすめ
- Excel 2010以前を使っている → CEILING関数のみ利用可能
似た関数との違い・使い分け
Excelには切り上げ・切り捨て系の関数が多数あります。用途に応じて使い分けましょう。詳しくは丸め関数10種の完全比較もあわせてご覧ください。
| 関数 | 丸め方 | 第2引数 | 負の数の扱い |
|---|---|---|---|
| CEILING.MATH | 倍数の方向へ切り上げ | 基準値(倍数) | mode引数で方向制御 |
| CEILING | 倍数の方向へ切り上げ | 基準値(倍数) | 負の基準値が必要 |
| CEILING.PRECISE | 常に大きい方向へ切り上げ | 基準値(倍数) | 常に正方向(方向制御なし) |
| FLOOR.MATH | 倍数の方向へ切り捨て | 基準値(倍数) | mode引数で方向制御 |
| ROUND | 四捨五入 | 桁数 | 正負どちらも対応 |
| ROUNDUP | 常に切り上げ | 桁数 | 0から離れる方向 |
CEILING.MATHとCEILING.PRECISEの使い分け
どちらも負の数を「大きい方向」に切り上げられます。ただし仕組みが異なります。
- CEILING.MATH: mode引数で方向を切り替えられる
- CEILING.PRECISE: 常に正方向(大きい方向)に固定
「負の数は常に大きい方向に丸めたい」ならCEILING.PRECISEがシンプルです。「場面によって方向を切り替えたい」ならCEILING.MATHを選びましょう。
CEILING.MATHとROUNDUPの使い分け
どちらも「切り上げ」ですが、指定方法が異なります。
- CEILING.MATH: 「倍数」で指定(100単位、500単位など)
- ROUNDUP: 「桁数」で指定(小数第2位、10の位など)
500円単位の切り上げならCEILING.MATH、小数第1位での切り上げならROUNDUPが向いています。
丸め関数の使い分けをもっと詳しく知りたい方はFLOOR/CEILING系6関数の違いや端数処理の関数選びガイドも参考にしてみてください。
TIP
Googleスプレッドシートでも同じ関数が使えます。スプレッドシート版の解説はスプレッドシートのCEILING.MATH関数の使い方をご覧ください。
まとめ
CEILING.MATH関数は、数値を指定した倍数の方向へ切り上げる関数です。CEILING関数との最大の違いは、負の数の扱いですよ。
ポイントを整理します。
- 構文は
=CEILING.MATH(数値, [基準値], [モード])の3引数 - Excel 2013以降で利用可能
- 正の数ではCEILING関数と結果は同じ
- 負の数ではモード引数で方向を制御できる(デフォルトは0に近づく方向)
- 基準値の符号を気にせず使えるので、正負混在データに便利
- CEILING.PRECISE関数は常に正方向固定、CEILING.MATHはモードで方向切替
- FLOOR.MATH関数はペアの切り捨て関数
- ROUNDUP関数は桁数指定、CEILING.MATHは倍数指定の切り上げ
まずは =CEILING.MATH(A1, 100) で100単位の切り上げから試してみてください。正の数だけならCEILING関数でも同じ結果ですが、負の数が出てきたときにCEILING.MATHなら安心です。
