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) | −4 | 0に向かう |
| FLOOR.MATH | −5 | −∞方向(既定) |
| FLOOR.MATH(モード1) | −4 | 0に向かう |
| FLOOR.PRECISE | −5 | 常に−∞方向 |
CEILING系(切り上げ方向):
| 関数 | −4.3を1で丸め | 丸め方向 |
|---|---|---|
| CEILING | #NUM! | 符号不一致でエラー |
| CEILING(-4.3, -1) | −5 | 0から遠ざかる |
| CEILING.MATH | −4 | +∞方向(既定) |
| CEILING.MATH(モード1) | −5 | 0から遠ざかる |
| 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 365 | Excel 2019 | Excel 2016 | Excel 2013 | Excel 2010 |
|---|---|---|---|---|---|---|
| FLOOR | Excel 2003 | 対応 | 対応 | 対応 | 対応 | 対応 |
| FLOOR.MATH | Excel 2013 | 対応 | 対応 | 対応 | 対応 | 非対応 |
| FLOOR.PRECISE | Excel 2010 | 対応 | 対応 | 対応 | 対応 | 対応 |
| CEILING | Excel 2003 | 対応 | 対応 | 対応 | 対応 | 対応 |
| CEILING.MATH | Excel 2013 | 対応 | 対応 | 対応 | 対応 | 非対応 |
| CEILING.PRECISE | Excel 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の「検索と置換」機能を使います。
- Ctrl + H で「検索と置換」ダイアログを開く
- 「検索する文字列」に
FLOOR(と入力 - 「置換後の文字列」に
FLOOR.MATH(と入力 - 「すべて置換」をクリック
- 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系の各関数を詳しく知りたい場合は、個別の解説記事をどうぞ。
- FLOOR関数の使い方
- FLOOR.MATH関数の使い方
- FLOOR.PRECISE関数の使い方
- CEILING関数の使い方
- CEILING.MATH関数の使い方
- CEILING.PRECISE関数の使い方
- ISO.CEILING関数の使い方
丸め関数の全体像と端数処理の実務ガイドもあわせてどうぞ。
