経理担当者が単価を会社規定にあわせて「10円単位」に丸めたり、購買担当者が発注数量を「1箱12個入り」のケース単位に合わせたりと、実務では小数点以下の桁数ではなく「任意の倍数」に数値を揃えたい場面がよくあります。ROUNDUPやROUNDDOWNは桁数指定でしか丸められないため、こうした「特定の数の倍数への丸め」には対応できません。ここで使うのがCEILING関数とFLOOR関数です。この記事では基本の使い方から、符号違いで起こる#NUM!エラー、ROUNDUPとの混同によるつまずきまで、実務目線で整理します。
CEILING・FLOORの基本構文と「基準値」の考え方
CEILING関数は、指定した基準値の倍数のうち、直近で数値以上になる値に切り上げます。FLOOR関数はその逆で、直近で数値以下になる倍数に切り下げます。どちらも引数は「数値」と「基準値」の2つだけです。
例:単価237円を10円単位に切り上げる/切り下げる場合
=CEILING(237,10) → 240 =FLOOR(237,10) → 230
基準値には10や100だけでなく、12(ケースの入数)や0.05(通貨の最小単位)のような数値も指定できます。「基準値の倍数のどこに丸めるか」という発想さえ押さえれば、応用範囲は非常に広い関数です。
ROUNDUPとの違いは「桁数」か「任意の倍数」か
CEILING・FLOORとROUNDUP・ROUNDDOWNは、どちらも「端数処理」という点は同じですが、丸める基準がまったく異なります。ROUND系は「小数点以下の桁数」を基準に丸めるのに対し、CEILING・FLOORは「任意の倍数(基準値)」を基準に丸めます。
ROUNDUP/ROUNDDOWN
- 桁数で丸める
- 例:-1で10の位、2で小数第2位
CEILING
- 基準値の倍数に切り上げ
- 例:10円単位、12個単位
FLOOR
- 基準値の倍数に切り下げ
- 例:15分単位、100円単位
たとえば「237を10の位で切り上げたい」という結果だけを見るとROUNDUP(237,-1)とCEILING(237,10)は同じ240になりますが、基準値が7や12のような「10のべき乗ではない倍数」になった瞬間、ROUNDUPでは対応できなくなります。ケース単位の発注数量のように「10進法のキリの良い数」ではない倍数に揃えたい場合は、CEILING・FLOORが必須です。
実務でのよくある使用シーン
経理担当者であれば、社内の値付けルールで「税込単価は10円単位に切り上げて表示する」と決まっている場合に、CEILING(税込単価,10)で自動的に丸めた金額を請求書や見積書に反映させる使い方が典型的です。営業事務・購買担当者であれば、必要数量を計算した結果が半端になったとき、「1箱12個入り」のようなケース単位に合わせて発注書の数量を確定させる場面でCEILINGを使います。たとえば必要数が130個であれば、CEILING(130,12)で132個(=12箱分)に切り上げ、不足なく発注できるようにします。総務担当者であれば、勤怠管理で退勤時刻を15分単位に切り捨てる社内ルールがある場合、FLOOR関数で退勤時刻を丸めて残業時間の集計に使うケースもあります。
CEILING・FLOORでよくあるエラー・トラブルと対処法
数値と基準値の符号(プラス・マイナス)が食い違っているときに発生する、CEILING・FLOOR特有のエラーです。
対処法として、マイナスの数値を丸めたい場合は基準値の符号も揃えて=CEILING(-237,-10)のように書きます。前月比の増減額のようにマイナスの値が混在する列に数式をコピーする場合は特に注意が必要です。
ROUNDUPと同じ感覚で基準値を省略できると思い込み、数値だけを指定して確定しようとすると発生します。
CEILING関数もFLOOR関数も「数値」と「基準値」の2つの引数がどちらも必須です。桁数を省略した書き方に慣れていると陥りやすいミスなので、必ず基準値までセットで入力する癖をつけましょう。
「切り上げ」という言葉のイメージからROUNDUPと混同し、基準値に桁数のような小さい数字を入れてしまうケースです。
CEILINGの基準値は「桁数」ではなく「丸める先の倍数そのもの」です。10円単位なら10、100円単位なら100というように、揃えたい実際の数値を基準値に入力することを徹底してください。
初心者がつまずきやすいポイントとコツ
- 基準値は「桁数」ではなく「倍数そのもの」を書く。ROUNDUP(数値,-1)のようなマイナスの桁数指定に慣れていると、CEILINGの基準値にも同じ感覚で小さい数字を入れがちですが、CEILINGの基準値には10や100といった実際の倍数の数値を入力します。
- マイナスの数値を丸めるときは基準値の符号も揃える。符号が食い違うと#NUM!エラーになるため、負の数値が混在する可能性がある数式では符号の一致をあらかじめ確認しておきましょう。
- 「ケース単位の発注数」を出すときは丸めた後の意味に注意する。CEILING(必要数,1箱の入数)が返すのは「発注すべき合計個数」であり、箱数そのものではありません。箱数が知りたい場合は、さらに入数で割る計算が必要です。
- 基準値には小数も指定できる。0.05や0.25のような小数を基準値にすれば、通貨の最小単位や規格の刻みに合わせた丸めにも応用できます。
まとめ
CEILING・FLORは「小数点以下の桁数」で丸めるROUNDUP・ROUNDDOWNとは異なり、「任意の倍数(基準値)」に数値を揃えるための関数です。10円単位の値付けや12個入りケースへの発注数量調整など、10進法のキリの良い桁数では対応できない場面で真価を発揮します。つまずきやすいのは、基準値を省略してしまう入力ミスと、数値・基準値の符号が食い違うことで起こる#NUM!エラーの2点です。基準値には「揃えたい倍数の実際の数値」を必ずセットで入力し、マイナスの数値を扱う場合は符号を揃えることを意識すれば、実務でも安心して使えます。数式を一から組み立てるのが不安な方は、下のツールで日本語の空欄を埋めるだけで数式を作成できます。