🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Excel MROUND・CEILING・FLOOR — 小数ではなく、最も近い倍数に丸める

|

Excel MROUND・CEILING・FLOOR — 小数ではなく、最も近い倍数に丸める

要点MROUNDCEILINGFLOOR は、あなたが選んだ数の最も近い倍数に 丸めます。小数の桁数にではありません。=MROUND(127, 5)125(最も近い5の倍数)、 =CEILING.MATH(127, 5)130(常に次の5へ切り上げ)、=FLOOR.MATH(127, 5)125(常に切り下げ)です。目玉のワナ:第2引数は倍数(「基準値 / significance」)であって、 桁数ではないROUND とは別のメンタルモデルです。現代的な CEILING.MATHFLOOR.MATH を使ってください。レガシーな CEILINGFLOOR は、数値と倍数の符号が 逆のとき #NUM! を出します。MROUND はすべてのバージョンで動作し、.MATH の組は Excel 2013 以降です。

=MROUND(127, 5)        ' -> 125   最も近い5の倍数
=CEILING.MATH(2.10, 0.05)   ' -> 2.10   価格を次の5セントへ切り上げる
=FLOOR.MATH(9:47, "0:15")   ' -> 9:45   時刻を15分単位へ切り下げる

ROUND は小数の桁数に丸めます。しかし現実世界の丸めの膨大な部分は、小数とは まったく関係ありません — それは倍数の話です。5セントや95セントの境界に 着地させねばならない価格、最も近い15分単位で打刻する時間、12個の完全なカートンに 詰める品物、パレット単位で発注する数量。これらこそ MROUNDCEILINGFLOOR が 作られた仕事であり、ひとたび「グリッドにスナップする」ものと見れば、それらは 混乱の種ではなくなります。このガイドは、そのメンタルモデルから始めて、誰もがはまる 2つのワナへ進みます。

なお、日本語版 Excel でも関数名は MROUND・CEILING・FLOOR と英語表記のままです。

このガイドで学べること

  • メンタルモデル:これらは数値を倍数のグリッドにスナップする
  • なぜ第2引数は小数の桁数ではなく倍数なのか
  • MROUND(最も近い)vs CEILING(常に上)vs FLOOR(常に下)
  • レガシー CEILINGFLOOR#NUM! のワナ、そして .MATH がより安全な理由
  • 負の数がどう丸められるか — そしてそれを反転させる mode 引数
  • 判断のしどころ:価格設定、スケジューリング、梱包

メンタルモデル:グリッドにスナップする

あなたが選んだ数の倍数だけに目盛りが刻まれた定規を想像してください — 5ごと、0.25ごと、 12ごと。この3つの関数は、どんな値も取って、その定規の目盛りにスナップします。 3つの違いは、どの目盛りを選ぶか、だけです。

  • MROUND最も近い目盛り(上にも下にもなりうる)
  • CEILING → 次の目盛り(既定ではゼロから遠ざかる方向)
  • FLOOR → 次の目盛り(既定ではゼロへ近づく方向)
' 5の倍数:  ...  120   125   130  ...
=MROUND(127, 5)        ' -> 125   (127 は 125 に近い)
=CEILING.MATH(127, 5)  ' -> 130   (次の5、上)
=FLOOR.MATH(127, 5)    ' -> 125   (次の5、下)

考え方はこれですべてです。「基準値(significance)」引数は定規の目盛りの間隔です — だからこそ、それを「小数の桁数」と呼ぶと道を誤るのです。

関数を定義づけるワナ:桁数ではなく倍数

これは最も多い間違いです。引数の位置ROUND と同じに見えるのに、意味が まったく違うからです。

=ROUND(2.346, 2)       ' -> 2.35   2 = 小数の桁数
=MROUND(2.346, 2)      ' -> 2      2 = 最も近い2の倍数
=MROUND(2.346, 0.01)   ' -> 2.35   MROUND で「最も近い円(セント)」にするにはこれ

ROUND(x, 2) は小数を2桁残します。MROUND(x, 2) は最も近い偶数にスナップします。 MROUND を「最も近い円」のように振る舞わせたいなら、倍数は 2 ではなく 0.01 です。 倍数の結果がとんでもなくおかしく見えたら、まずここを確認してください。ほぼ間違いなく、 倍数を入れるべき場所に桁数を渡しています。

MROUND・CEILING・FLOOR:どの目盛り

方向こそが判断であり、それはたいていビジネスルールにそのまま対応します。

' 価格心理: すべての価格を x.95 に着地させる
=CEILING.MATH(12.40, 1) - 0.05      ' -> 12.95
' 打刻: 勤務時間を最も近い15分に丸める
=MROUND(B2, "0:15")
' 出荷: 12個入りカートンを半端には送れない
=CEILING.MATH(orders, 12)           ' 40 注文 -> 48 (4カートン)
' 予算: 手持ちの現金で何個の完全なユニットが収まるか
=FLOOR.MATH(budget / unit_cost, 1)  ' 整数ユニットへ切り下げ

判断はほぼ常に、誤差がどちらの方向に出なければならないかです。梱包とキャパシティは 上へ丸めます(CEILING) — カートンが1つ足りないのが失敗だからです。手頃さと 「完全なXが何個」は下へ丸めます(FLOOR) — 届けられる数より1つ多く約束するのが 失敗だからです。どちらでもよく、ただ最も近いものが欲しいなら MROUND

#NUM! のワナ:なぜ CEILING.MATH と FLOOR.MATH が存在するのか

元々の CEILINGFLOOR には鋭い刃があります。数値と基準値の符号が逆だと、 丸めずに — エラーを出すのです。

=CEILING(-4.1, 1)      ' -> #NUM!   負の数、正の基準値
=CEILING.MATH(-4.1, 1) ' -> -4      問題なく動く

その #NUM! こそ「なぜ CEILING は私の負の数で壊れるのか?」という最大の驚きであり、 Excel 2013 が CEILING.MATHFLOOR.MATH を導入したまさにその理由です。.MATH 版はあらゆる符号を優雅に扱い、省略可能な mode 引数を追加します。 新規の作業には CEILING.MATHFLOOR.MATH を使ってください。素の CEILINGFLOOR は、古いブックがすでにそれらに依存している場合にのみ残します。(MROUND にも 独自の同様のルールがあります — 数値と倍数は符号を共有する必要があり、さもないと同じく #NUM! が出ます。)

負の数はどう丸められるか、そして mode スイッチ

既定では、CEILING.MATHプラス無限大の方向に、FLOOR.MATHマイナス無限大の 方向に丸めます — 符号も含めた、真の数学的な天井と床です。

=CEILING.MATH(-4.1, 1)     ' -> -4    (+無限大の方向: -4 のほうが大きい)
=FLOOR.MATH(-4.1, 1)       ' -> -5    (-無限大の方向: -5 のほうが小さい)
=CEILING.MATH(-4.1, 1, 1)  ' -> -5    mode = 1 は代わりにゼロから遠ざける方向に丸める

省略可能な第3引数 mode は、負の数を無限大の方向ではなくゼロから遠ざかる方向に 丸めるよう反転させます。めったに必要ありませんが、仕様が「符号に関わらず常に絶対値を 切り上げる」と言うときは、それがそのスイッチです。この無限大方向 vs ゼロ方向の区別は、 INTTRUNC を分けるものと同じです — Excel INT・TRUNC・MOD を参照してください。そして、もし 倍数ではなく小数に丸めていたのなら、欲しいのは Excel ROUND・ROUNDUP・ROUNDDOWN です。

判断のしどころ:倍数 vs 小数 vs 制約

2つの問いを立てます。第一に、倍数(5セント、15分、12個パック)に丸めているのか、 それとも小数の桁数に丸めているのか? 倍数 → このファミリー、小数 → ROUND。第二に、結果は特定の方向へ進む必要があるか? 下回ってはいけない → CEILING.MATH、上回ってはいけない → FLOOR.MATH、最も近ければ よい → MROUND。既定で .MATH 関数を使い、はぐれた負の数が決して #NUM! にならない ようにし、素の CEILINGFLOOR はレガシーファイル用に取っておきます。倍数と方向を 先に言葉にすれば、数式はほとんど勝手に書き上がります。

ExcelMaster はどう役立つか

「すべての価格を次の95セントへ切り上げる」「時間を最も近い15分単位で打刻する」 「48個入りのパレット単位で発注する」 — これらは倍数と方向のルールであり、バグは倍数の 代わりに桁数を渡すこと、あるいは負の数で #NUM! を踏むことから生まれます。 ExcelMaster はその文章を正しい呼び出しに変えます。最も近いものが勝つなら MROUND、 方向が指定されているなら CEILING.MATHFLOOR.MATH を、倍数を正しく設定し符号も 処理したうえで。あなたはルールを平易な言葉で述べるだけ。それが、あなたの意図した グリッドにスナップする関数を選びます。

よくある質問

Excel で最も近い5(または5セント)に丸めるには?

第2引数に倍数を指定して MROUND を使います。最も近い5には =MROUND(A2, 5)、最も近い 5セントには =MROUND(A2, 0.05)。「常に上」には =CEILING.MATH(A2, 5)、「常に下」には =FLOOR.MATH(A2, 5) を使います。

MROUND と ROUND の違いは?

ROUND の第2引数は小数の桁数で、MROUND の第2引数はスナップする倍数です。 =ROUND(x, 2) は小数を2桁残し、=MROUND(x, 2) は最も近い2の倍数に丸めます。MROUND で 「最も近い円」にするには、倍数 0.01 を使います。

なぜ CEILING は #NUM! を返すのですか?

レガシーな CEILINGFLOOR は、数値と基準値の符号が逆のとき(例:負の数に正の倍数) エラーを出します。あらゆる符号を扱える CEILING.MATHFLOOR.MATH を使ってください。

時刻を最も近い15分に丸めるには?

最も近い15分には =MROUND(time, "0:15")、常に切り上げるには =CEILING.MATH(time, "0:15")、常に切り下げるには =FLOOR.MATH(time, "0:15") を使います。時刻は1日の小数なので、 "0:15" というテキストは正しい値に解決されます。

CEILING と CEILING.MATH のどちらを使うべき?

新規の作業には CEILING.MATH を — 負の数をエラーなく扱い、mode 引数を追加します。 素の CEILING は、既存のブックがすでにそれに依存している場合にのみ残します。

検証環境

検証環境: Excel 365(Windows 11)— 最終確認 2026-06-27

関連ガイド: Excel ROUND・ROUNDUP・ROUNDDOWN · Excel INT・TRUNC・MOD · Excel SUMIFS · Excel IF