ExcelのFLOOR/CEILING系6関数の違い|MATH・PRECISEの使い分け

スポンサーリンク

ExcelのFLOOR系・CEILING系には、旧関数と後継関数を合わせて6種類もあります。「FLOOR.MATHとFLOOR.PRECISEは何が違うの?」と迷いますよね。

さらに厄介なのが、旧関数と新関数で負の数の丸め方向が異なる点です。関数を入れ替えたら計算結果が変わっていた、というトラブルにつながります。

この記事では、6関数の違いを3つの比較軸で整理します。移行の判断基準もまとめたので、もう迷いませんよ。

FLOOR/CEILING系6関数の違い【結論から】

まずは結論です。6関数の役割と特徴を一覧表にまとめました。

関数名方向引数第2引数の省略負の数の丸め対応バージョン
FLOOR切り捨て2個(必須)不可0に向かうExcel 2003〜
FLOOR.MATH切り捨て3個(1個必須)可(既定1)第3引数で選択Excel 2013〜
FLOOR.PRECISE切り捨て2個(1個必須)可(既定1)常に−∞方向Excel 2010〜
CEILING切り上げ2個(必須)不可0に向かうExcel 2003〜
CEILING.MATH切り上げ3個(1個必須)可(既定1)第3引数で選択Excel 2013〜
CEILING.PRECISE切り上げ2個(1個必須)可(既定1)常に+∞方向Excel 2010〜

ひと言でまとめると、新しいファイルにはFLOOR.MATHとCEILING.MATHを使うのがおすすめです。引数を省略でき、負の数の制御も柔軟です。

ペア記事のご案内

丸め関数10種の全体像は「Excelの丸め関数10種を完全比較|ROUND・INT・CEILINGの使い分け早見表」で整理しています。端数処理の実務パターンは「Excel端数処理の関数選び|消費税・時間・金額のシーン別早見表」もあわせてどうぞ。

FLOOR系3関数の基本と特徴

FLOOR系は「切り捨て」方向に丸める関数グループです。3つの関数を順に見ていきましょう。

FLOOR関数(旧関数)

=FLOOR(数値, 基準値)

旧来からある切り捨て関数です。数値を基準値の倍数に切り捨てます。

特徴:

  • 第2引数(基準値)は省略できません
  • 負の数を扱うとき、数値と基準値の符号を揃える必要があります
  • 符号が異なると#NUM!エラーになります
=FLOOR(17, 5)    → 15  (17を5の倍数で切り捨て)
=FLOOR(2.7, 1)   → 2   (整数に切り捨て)
=FLOOR(-4.3, -1) → -4  (0に向かって切り捨て)
=FLOOR(-4.3, 1)  → #NUM!エラー(符号不一致)

FLOOR関数の制約

負の数を扱うには基準値にも負の符号を付ける必要があります。この不便さを解消したのがFLOOR.MATHとFLOOR.PRECISEです。

FLOOR.MATH関数(Excel 2013〜推奨)

=FLOOR.MATH(数値, [基準値], [モード])

FLOOR関数の後継として導入された関数です。使い勝手が大幅に改善されています。

特徴:

  • 第2引数を省略すると基準値1(整数への切り捨て)になります
  • 第3引数(モード)で負の数の丸め方向を制御できます
  • 数値と基準値の符号が異なってもエラーになりません
=FLOOR.MATH(17, 5)       → 15  (正の数は旧FLOORと同じ)
=FLOOR.MATH(2.7)          → 2   (第2引数省略で整数に切り捨て)
=FLOOR.MATH(-4.3, 1)      → -5  (−∞方向に丸め:既定の動作)
=FLOOR.MATH(-4.3, 1, 1)   → -4  (0に向かって丸め:モード指定)

第3引数(モード)の使い分けは次のとおりです。

モード負の数の丸め方向例(−4.3を1で丸め)
0 または省略−∞方向(数直線の左)−5
0以外の数値0方向(絶対値が小さい方)−4

FLOOR.PRECISE関数(Excel 2010〜)

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

基準値の符号を無視して、常にマイナス無限大方向に丸める関数です。

特徴:

  • 第2引数を省略すると基準値1になります
  • 基準値に負の数を指定しても絶対値が使われます
  • 丸め方向は常に−∞方向(数直線の左)で固定です
=FLOOR.PRECISE(17, 5)    → 15  (正の数は旧FLOORと同じ)
=FLOOR.PRECISE(2.7)       → 2   (整数に切り捨て)
=FLOOR.PRECISE(-4.3, 1)   → -5  (常に−∞方向)
=FLOOR.PRECISE(-4.3, -1)  → -5  (基準値の符号は無視される)

FLOOR.MATH vs FLOOR.PRECISE

正の数のみを扱うなら両者の結果は同じです。負の数を扱い「0方向に丸めたい」場面があるならFLOOR.MATHの第3引数が便利です。PRECISEは常に−∞方向に固定されます。

CEILING系3関数の基本と特徴

CEILING系は「切り上げ」方向に丸める関数グループです。FLOOR系と対になる構成です。

CEILING関数(旧関数)

=CEILING(数値, 基準値)

旧来からある切り上げ関数です。数値を基準値の倍数に切り上げます。

特徴:

  • 第2引数(基準値)は省略できません
  • 負の数を扱うとき、数値と基準値の符号を揃える必要があります
  • 符号が異なると#NUM!エラーになります
=CEILING(12, 5)    → 15  (12を5の倍数で切り上げ)
=CEILING(2.1, 1)   → 3   (整数に切り上げ)
=CEILING(-4.3, -1) → -5  (0から遠ざかる方向に切り上げ)
=CEILING(-4.3, 1)  → #NUM!エラー(符号不一致)

CEILING.MATH関数(Excel 2013〜推奨)

=CEILING.MATH(数値, [基準値], [モード])

CEILING関数の後継です。FLOOR.MATHと対称的な設計になっています。

特徴:

  • 第2引数を省略すると基準値1(整数への切り上げ)になります
  • 第3引数(モード)で負の数の丸め方向を制御できます
  • 符号が異なってもエラーになりません
=CEILING.MATH(12, 5)       → 15  (正の数は旧CEILINGと同じ)
=CEILING.MATH(2.1)          → 3   (第2引数省略で整数に切り上げ)
=CEILING.MATH(-4.3, 1)      → -4  (+∞方向に丸め:既定の動作)
=CEILING.MATH(-4.3, 1, 1)   → -5  (0から遠ざかる方向:モード指定)

第3引数(モード)の使い分けは次のとおりです。

モード負の数の丸め方向例(−4.3を1で丸め)
0 または省略+∞方向(数直線の右)−4
0以外の数値0から遠ざかる方向−5

CEILING.PRECISE関数(Excel 2010〜)

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

基準値の符号を無視して、常にプラス無限大方向に丸める関数です。

特徴:

  • 第2引数を省略すると基準値1になります
  • 基準値に負の数を指定しても絶対値が使われます
  • 丸め方向は常に+∞方向(数直線の右)で固定です
=CEILING.PRECISE(12, 5)    → 15  (正の数は旧CEILINGと同じ)
=CEILING.PRECISE(2.1)       → 3   (整数に切り上げ)
=CEILING.PRECISE(-4.3, 1)   → -4  (常に+∞方向)
=CEILING.PRECISE(-4.3, -1)  → -4  (基準値の符号は無視される)

ISO.CEILING関数について

ISO.CEILING関数はCEILING.PRECISEと同じ動作をします。ISO規格に準拠した名前が付いただけで、引数も結果も完全に同一です。どちらを使っても構いません。

FLOOR/CEILING系6関数を3つの軸で徹底比較

ここからは、6関数の違いを3つの軸で詳しく見ていきます。「負の数での丸め方向」「第2引数省略時の挙動」「対応バージョン」の順に整理します。

比較軸1: 負の数での丸め方向

6関数の最大の違いは、負の数を丸めたときの動きです。−4.3を基準値1で丸めた結果を比べてみましょう。

FLOOR系(切り捨て方向):

関数−4.3を1で丸め丸め方向
FLOOR#NUM!符号不一致でエラー
FLOOR(-4.3, -1)−40に向かう
FLOOR.MATH−5−∞方向(既定)
FLOOR.MATH(モード1)−40に向かう
FLOOR.PRECISE−5常に−∞方向

CEILING系(切り上げ方向):

関数−4.3を1で丸め丸め方向
CEILING#NUM!符号不一致でエラー
CEILING(-4.3, -1)−50から遠ざかる
CEILING.MATH−4+∞方向(既定)
CEILING.MATH(モード1)−50から遠ざかる
CEILING.PRECISE−4常に+∞方向

ポイントを整理すると:

  • 旧関数(FLOOR/CEILING): 負の数は基準値の符号を揃える必要あり。「0に向かう」丸め
  • MATH系: 既定では数直線方向に丸める(FLOORは−∞、CEILINGは+∞)。第3引数で旧関数と同じ動きも選べる
  • PRECISE系: 常に数直線方向で固定。方向を変えられない

正の数だけなら結果は同じ

正の数(0以上)を扱う場合、6関数すべてで結果が一致します。違いが出るのは負の数を扱うときだけです。勤怠の時間計算や金額の丸めなど、正の数だけを扱う実務では旧関数でも問題ありません。

比較軸2: 第2引数(基準値)省略時の挙動

関数第2引数の省略省略時の動作
FLOOR不可(#NUM!エラー)
FLOOR.MATH基準値1(整数への切り捨て)
FLOOR.PRECISE基準値1(整数への切り捨て)
CEILING不可(#NUM!エラー)
CEILING.MATH基準値1(整数への切り上げ)
CEILING.PRECISE基準値1(整数への切り上げ)

MATH系とPRECISE系は第2引数を省略できます。「整数に丸めたい」だけのときにシンプルに書けます。

=FLOOR.MATH(4.7)     → 4  (旧FLOORでは =FLOOR(4.7, 1) と書く必要あり)
=CEILING.MATH(4.2)    → 5  (旧CEILINGでは =CEILING(4.2, 1) と書く必要あり)

比較軸3: 対応バージョンと互換性

関数導入バージョンMicrosoft 365Excel 2019Excel 2016Excel 2013Excel 2010
FLOORExcel 2003対応対応対応対応対応
FLOOR.MATHExcel 2013対応対応対応対応非対応
FLOOR.PRECISEExcel 2010対応対応対応対応対応
CEILINGExcel 2003対応対応対応対応対応
CEILING.MATHExcel 2013対応対応対応対応非対応
CEILING.PRECISEExcel 2010対応対応対応対応対応

Excel 2010ユーザーへ

FLOOR.MATHとCEILING.MATHはExcel 2010では使えません。Excel 2010環境が残っている場合はFLOOR.PRECISEまたはCEILING.PRECISEを使うか、旧関数のままにしておく方が安全です。

「旧ファイルで結果が変わった」トラブルと修正方法

「昔作ったファイルで計算結果が変わっていた」というケースがあります。原因と対処法を整理しましょう。

トラブルが起きる原因

旧FLOOR/CEILING関数自体は、新しいExcelでも動作が変わりません。ファイルを開いただけで結果が変わることは基本的にありません。

ただし、次のケースでは結果がずれる可能性があります。

  • 手動で関数名を書き換えた場合: FLOORをFLOOR.MATHに置き換えると、負の数の丸め方向が変わります
  • テンプレートの更新: 社内テンプレートが新関数に差し替わっていると、旧シートとの整合性が崩れます
  • Googleスプレッドシートとの往復: スプレッドシートで保存し直すと、互換関数への変換が起きることがあります

修正方法: 旧関数を新関数に正しく置き換える

移行のポイントは、負の数の動きを維持するかどうかです。

FLOOR → FLOOR.MATH への置き換え:

旧数式新数式(−∞方向)新数式(0方向=旧と同じ動き)
=FLOOR(A1, 5)=FLOOR.MATH(A1, 5)=FLOOR.MATH(A1, 5)
=FLOOR(-A1, -5)=FLOOR.MATH(A1, 5)=FLOOR.MATH(A1, 5, 1)

正の数のみなら、そのまま置き換えてOKです。負の数もある場合は第3引数に1を指定すると旧関数と同じ動きになります。

CEILING → CEILING.MATH への置き換え:

旧数式新数式(+∞方向)新数式(0から遠ざかる=旧と同じ動き)
=CEILING(A1, 5)=CEILING.MATH(A1, 5)=CEILING.MATH(A1, 5)
=CEILING(-A1, -5)=CEILING.MATH(A1, 5)=CEILING.MATH(A1, 5, 1)

考え方はFLOOR側と同じです。正の数だけなら置き換えるだけです。

置き換え手順(Ctrl+Hで一括置換)

数式をまとめて置き換えるには、Excelの「検索と置換」機能を使います。

  1. Ctrl + H で「検索と置換」ダイアログを開く
  2. 「検索する文字列」に FLOOR( と入力
  3. 「置換後の文字列」に FLOOR.MATH( と入力
  4. 「すべて置換」をクリック
  5. CEILING側も同様に CEILING(CEILING.MATH( で置換

一括置換の注意点

FLOOR( で検索すると FLOOR.MATH(FLOOR.PRECISE( もヒットしてしまいます。置換後に「FLOOR.MATH.MATH」のような二重変換が起きていないか確認してください。心配な場合は「すべて置換」の前に「次を検索」でひとつずつ確認しましょう。

FLOOR/CEILING系6関数の場面別おすすめ

どの関数を使うべきか迷ったときの判断基準です。

FLOOR.MATH / CEILING.MATHを使うべきケース

  • Excel 2013以降の環境で新しいファイルを作る場合
  • 負の数を扱う可能性がある場合
  • 引数を省略してシンプルに書きたい場合
  • 旧関数の#NUM!エラーを避けたい場合

これが最もおすすめの選択肢です。 迷ったらFLOOR.MATH / CEILING.MATHを使ってください。

FLOOR.PRECISE / CEILING.PRECISEを使うべきケース

  • Excel 2010環境で動かす必要がある場合
  • 負の数を常に数直線方向に丸めたい場合(方向を変える必要がない場合)

旧FLOOR / CEILINGを使い続けてよいケース

  • Excel 2010以前の環境との互換性を維持する必要がある場合
  • 正の数しか扱わないファイルで、わざわざ数式を変える必要がない場合
  • 社内の共有テンプレートで旧関数が標準になっている場合

移行はファイル単位で段階的に

全ファイルを一気に新関数に切り替える必要はありません。新しく作るファイルはFLOOR.MATH / CEILING.MATHを使い、既存ファイルは問題が出たときに対応する、という段階的な移行がおすすめです。

まとめ

FLOOR/CEILING系6関数の使い分けをおさらいします。

判断ポイントおすすめ関数
新規ファイル(Excel 2013〜)FLOOR.MATH / CEILING.MATH
Excel 2010環境が残っているFLOOR.PRECISE / CEILING.PRECISE
旧ファイルで正の数のみ使用旧FLOOR / CEILINGのままでOK
負の数で方向を制御したいFLOOR.MATH / CEILING.MATH(第3引数)
負の数で方向を固定したいFLOOR.PRECISE / CEILING.PRECISE

基本方針は「FLOOR.MATH / CEILING.MATH を使う」です。引数を省略でき、負の数も柔軟に制御できます。正の数だけなら旧関数のままでも大丈夫です。

丸め関数の全体像は「Excelの丸め関数10種を完全比較」で確認できます。実務パターンは「Excel端数処理の関数選び」もどうぞ。

関連記事

FLOOR/CEILING系の各関数を詳しく知りたい場合は、個別の解説記事をどうぞ。

丸め関数の全体像と端数処理の実務ガイドもあわせてどうぞ。

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