「単価を10円単位で切り上げたい」「作業時間を15分刻みで切り捨てたい」「ロット数を5個単位に丸めたい」——こうした倍数単位の丸め処理はROUND・ROUNDUP・ROUNDDOWNでは対応できません。ROUND系は「小数点以下の桁数」で丸めますが、FLOOR・CEILING・MROUNDは「任意の倍数・単位」で丸めるために設計された関数群です。
3関数の役割を一言で整理します。FLOORは指定した倍数に向かって切り捨て、CEILINGは指定した倍数に向かって切り上げ、MROUNDは指定した倍数の中で最も近い値に四捨五入します。価格の端数処理・勤怠時間の刻み管理・在庫ロット計算・グラフ軸の目盛り設計など、実務に直結するシーンで毎日使われる関数です。
本記事では、FLOOR・CEILING・MROUNDの基本構文・負数の挙動・FLOOR.MATH/CEILING.MATHとの違い・ROUND系との使い分け・実務5シナリオ・よくあるエラーの対処法・MOS Excel試験の出題ポイントを体系的に解説します。
FLOOR・CEILING・MROUND の基本構文と役割の違い
3関数の構文を並べて比較します。
=FLOOR(数値, 基準値)
=CEILING(数値, 基準値)
=MROUND(数値, 倍数)
| 関数 | 動作 | 引数1 | 引数2 | 典型的な用途 |
|---|---|---|---|---|
| FLOOR | 基準値の倍数に向けて切り捨て(ゼロ方向) | 数値(必須) | 基準値(必須・正の数) | 単価切り捨て・時間切り捨て |
| CEILING | 基準値の倍数に向けて切り上げ(ゼロから遠ざかる方向) | 数値(必須) | 基準値(必須・正の数) | 単価切り上げ・繰り上げ計算 |
| MROUND | 倍数の最も近い値に四捨五入(0.5以上で繰り上げ) | 数値(必須) | 倍数(必須) | 15分刻み・5円単位の近似値 |
具体例:数値137を50単位で丸める場合の計算結果の比較です。
| 数式 | 結果 | 説明 |
|---|---|---|
| =FLOOR(137, 50) | 100 | 137以下で50の倍数 → 100 |
| =CEILING(137, 50) | 150 | 137以上で50の倍数 → 150 |
| =MROUND(137, 50) | 150 | 100との差=37、150との差=13 → 近い150 |
FLOOR関数:倍数単位の切り捨て
FLOOR関数は「基準値の倍数の中で、数値を超えない最大値」を返します。ROUNDDOWNが「小数点以下の桁で切り捨て」なのに対し、FLOORは「任意の刻みで切り捨て」という点が根本的な違いです。
' 単価を100円単位で切り捨て
=FLOOR(1380, 100) ' → 1300
' 作業時間(分)を15分単位で切り捨て
=FLOOR(47, 15) ' → 45(47分→45分に切り捨て)
' 在庫数をロット数(24個)単位で切り捨て
=FLOOR(100, 24) ' → 96(24×4=96)
基準値に小数を使う例:消費税を考慮した1円単位切り捨てではROUNDDOWNで事足りますが、0.5円単位や5銭単位の計算にはFLOORが必要です。
' 価格を5円単位で切り捨て
=FLOOR(1237, 5) ' → 1235
' 時間を0.5時間(30分)単位で切り捨て
=FLOOR(2.7, 0.5) ' → 2.5(2時間42分 → 2.5時間)
注意点:Excel 2010以前のFLOOR関数は、数値と基準値の符号が異なると#NUM!エラーを返します。負数を扱う場合は後述のFLOOR.MATHを使います。
CEILING関数:倍数単位の切り上げ
CEILING関数は「基準値の倍数の中で、数値以上の最小値」を返します。ROUNDUPが小数点以下で切り上げるのと対応する位置づけです。「少なくとも○○単位以上を確保する」という在庫・予算・時間の見積もりシーンに多用されます。
' 単価を100円単位で切り上げ
=CEILING(1301, 100) ' → 1400
' 必要枚数をパック単位(10枚入り)で切り上げ
=CEILING(73, 10) ' → 80(8パック必要)
' 作業時間を15分単位で切り上げ(残業申請の丸め)
=CEILING(52, 15) ' → 60(52分→60分に切り上げ)
CEILING関数は「端数があれば必ず次の単位に繰り上げる」という特性のため、消耗品の発注数・会議室予約時間・配送ケース数など「不足してはいけない」計算に最適です。
' 参加人数に対して弁当のパック数を発注する(6個入り)
人数が21人の場合: =CEILING(21, 6) ' → 24(4パック確保)
' セミナー時間を30分単位で切り上げ
=CEILING(95, 30) ' → 120(95分→120分に切り上げ)
MROUND関数:倍数単位の四捨五入
MROUND関数は「指定した倍数の中で最も近い値」を返します。切り捨て・切り上げではなく、近い方に寄せるという挙動はROUNDと同じ考え方です。MROUNDの「M」はMultiple(倍数)を意味します。
' 時刻を15分刻みに丸める(分単位の入力を整形)
=MROUND(47, 15) ' → 45(47は45に近い)
=MROUND(53, 15) ' → 60(53は60に近い)
' 売上を1000円単位に丸める
=MROUND(1480, 1000) ' → 1000(500未満なので切り捨て)
=MROUND(1500, 1000) ' → 2000(500以上なので切り上げ)
' 重量を250g単位に丸める
=MROUND(680, 250) ' → 750(680は500より750に近い)
端点の挙動:ちょうど中間の値(倍数の半分)の場合、MROUNDは「ゼロから遠い方」に丸めます。例えばMROUND(250, 500)は500(0より500に近いため)となります。
| 数式 | 結果 | 丸め方向 |
|---|---|---|
| =MROUND(249, 500) | 0 | 0に近いので切り捨て方向 |
| =MROUND(250, 500) | 500 | ちょうど中間→500(ゼロから遠い方) |
| =MROUND(251, 500) | 500 | 500に近いので切り上げ方向 |
PR
MOS Excel 365 対策テキスト&問題集(よくわかるマスター/富士通ラーニングメディア)
MOS試験の頻出範囲を体系的に演習できる公式教材シリーズ。関数の使い方を試験形式の問題で確認しながら定着させたい方に向いています。
FLOOR.MATH・CEILING.MATH:負数対応の最新版(Excel 2013以降)
Excel 2010以前のFLOOR・CEILINGは負数の扱いが直感に反する動作をするため、Excel 2013でFLOOR.MATHとCEILING.MATHが追加されました。
=FLOOR.MATH(数値, [基準値], [モード])
=CEILING.MATH(数値, [基準値], [モード])
| 関数 | 正数での動作 | 負数での動作(モード省略時) | 負数(モード=1) |
|---|---|---|---|
| FLOOR / FLOOR.MATH | 0方向(小さい方)に切り捨て | -∞方向(絶対値が増える方向)に切り捨て | 0方向(絶対値が減る方向) |
| CEILING / CEILING.MATH | +∞方向(大きい方)に切り上げ | 0方向(絶対値が減る方向)に切り上げ | -∞方向(絶対値が増える方向) |
' 旧FLOOR(負数で#NUM!エラーになる場合がある)
=FLOOR(-8, 3) ' Excel 2007: #NUM! Excel 2010以降: -9
' FLOOR.MATH(負数も安定動作)
=FLOOR.MATH(-8, 3) ' → -9(-∞方向)
=FLOOR.MATH(-8, 3, 1) ' → -6(0方向:モード=1指定)
実務では正数しか扱わないケースが大半のため、FLOOR/CEILINGで問題ないことが多いです。ただしMOS Excel試験で「Excel 2013以降の関数」を問う設問にFLOOR.MATH/CEILING.MATHが登場することがあるため、名前と目的は把握しておきましょう。
ROUND系との使い分け:どの関数を選ぶか
ROUND/ROUNDUP/ROUNDDOWNとFLOOR/CEILING/MROUNDは「何を基準に丸めるか」が根本的に異なります。
| 丸めたいもの | 使う関数 | 例 |
|---|---|---|
| 小数点以下の桁数で丸める | ROUND/ROUNDUP/ROUNDDOWN | 消費税計算で小数点以下切り捨て: =ROUNDDOWN(1234.56, 0) → 1234 |
| 任意の倍数・単位で切り捨てる | FLOOR / FLOOR.MATH | 在庫を24個ロット単位で切り捨て: =FLOOR(100, 24) → 96 |
| 任意の倍数・単位で切り上げる | CEILING / CEILING.MATH | 発注数を6個パック単位で切り上げ: =CEILING(21, 6) → 24 |
| 任意の倍数・単位で四捨五入する | MROUND | 時刻を15分刻みに丸める: =MROUND(47, 15) → 45 |
判断フロー:① 「10の何乗単位」(1円・10円・100円など)なら ROUND系で=ROUNDDOWN(数値, -2)のように負の桁数を指定する方法もあります。ただし「50円単位」「15分単位」「24個単位」のような2や5の倍数でない任意の刻みにはROUND系では対応できないため、FLOOR/CEILING/MROUNDを使います。
' 100円単位の切り捨て:2通りの方法(結果は同じ)
=ROUNDDOWN(1380, -2) ' → 1300
=FLOOR(1380, 100) ' → 1300
' 50円単位の切り捨て:FLOORのみ可能
=ROUNDDOWN(1380, -2) ' → 1300 ← 50円単位にならない
=FLOOR(1380, 50) ' → 1350 ← 正しく50円単位
実務シナリオ別の活用パターン
シナリオ1:販売価格を5円・10円単位に統一する
仕入れ値に利益率を掛けた販売価格が端数になる場合、キリのいい単位に整形します。端数処理の方向(切り捨て/切り上げ)は商品・業界・ポリシーによって異なります。
' 仕入れ値(B2)に1.3倍して5円単位で切り上げ(競合を意識した価格設定)
=CEILING(B2 * 1.3, 5)
' 10円単位で切り捨て(端数を省いてすっきり見せる)
=FLOOR(B2 * 1.3, 10)
' 50円単位で最も近い価格に丸める
=MROUND(B2 * 1.3, 50)
シナリオ2:勤怠時間を15分・30分単位で丸める
就業規則で「残業は15分単位で切り捨て計上」「休憩は30分単位で切り上げ」といった規定がある場合の計算式です。時刻は「時間を分に変換」してから計算すると扱いやすくなります。
' A1セルに残業開始時刻(例: 18:15)、B1に終了時刻(例: 20:47)が入っている場合
' まず分単位の差分を計算
=(B1 - A1)* 1440 ' 1440=24時間×60分。例: 152分
' 残業時間を15分単位で切り捨て(申請分数)
=FLOOR((B1 - A1) * 1440, 15) ' → 150分(10時間30分)
' 分を「H:MM形式」のテキストで表示するTEXT変換
=TEXT(FLOOR((B1-A1)*1440, 15)/1440, "H:MM") ' → "2:30"
シナリオ3:発注ロット数の自動計算
在庫数が最低水準を下回ったときに必要な発注ケース数を、ロット単位で自動算出します。
' B2: 現在庫数、C2: 目標在庫数、D2: ロット単位(例: 12)
' 不足数
不足数 = C2 - B2
' 発注ケース数(不足数をロット単位で切り上げ)
=CEILING(MAX(C2 - B2, 0), D2) / D2
' 例: 現在庫=30、目標=100、ロット=12 → 不足70 → CEILING(70, 12)=72 → 6ケース
=CEILING(70, 12) ' → 72(6ケース分)
シナリオ4:グラフ軸の最大値を算出して見やすい目盛りを設定する
データの最大値に合わせてグラフ軸の最大値を「キリのいい値」に自動設定したいとき、CEILINGを使って動的に計算できます。
' B列のデータ最大値を1000単位で切り上げてグラフ軸の参照値を用意する
=CEILING(MAX(B2:B100), 1000)
' データ最大値が3750なら → 4000
' データ最大値が4001なら → 5000
' 目盛り刻み幅(最大値の1/5を100単位で切り上げ)
=CEILING(CEILING(MAX(B2:B100), 1000) / 5, 100)
シナリオ5:会議室・設備の使用時間を30分単位で切り上げ請求する
レンタルスペース・設備利用料の計算で「開始時刻から終了時刻までを30分単位で繰り上げた使用時間×単価」を求めます。
' A2: 開始時刻、B2: 終了時刻、C2: 単価(30分あたり)
' 使用分数を30分単位で切り上げ、単価を掛ける
=CEILING((B2 - A2) * 1440, 30) / 30 * C2
' 例: 9:10~11:25(135分)、単価1500円の場合
' CEILING(135, 30) = 150(5コマ)→ 5 × 1500 = 7500円
PR
できるExcel関数 Copilot対応 Office 2024/2021/2019&Microsoft 365版(インプレス)
関数の基本から応用まで手順つきで解説する定番シリーズ。似た関数の使い分けに迷ったときの早見表としても使えます。
よくあるエラーと原因・対処法
| 症状・エラー | 原因 | 対処法 |
|---|---|---|
| #NUM! | FLOOR/CEILINGで数値と基準値の符号が逆(例: FLOOR(-8, 3)) | FLOOR.MATH / CEILING.MATHに切り替えるか、ABS関数で正数に変換する |
| #DIV/0! / #VALUE! | 基準値に0を指定した | 基準値に0は使えない。IF(基準値=0, 数値, FLOOR(数値, 基準値))で0のケースを除外する |
| 結果が0になる | 数値より基準値が大きく、FLOORで0に切り捨てられた | 数値と基準値の大小関係を確認する(例: FLOOR(3, 10)→0) |
| 浮動小数点誤差で期待値と1ずれる | 0.1+0.2のような浮動小数点演算の誤差が基準値に影響する | ROUND(数値, 10)で事前に精度を落としてからFLOOR/CEILINGに渡す |
| MROUNDでちょうど中間値が意図と逆に丸まる | MROUND(250, 500)→500(ゼロから遠い方)が仕様 | 中間値の扱いを要件で確認し、必要なら IF(MOD(数値, 倍数)=倍数/2, 切り上げ式, MROUND) で明示制御 |
「結果がおかしい」と感じたときのデバッグ手順:① 数値・基準値セルを直接確認(セルが文字列型になっていないか)→ ② 基準値がゼロでないか確認→ ③ 負数が混入していないか確認→ ④ FLOOR.MATH/CEILING.MATHへ置き換えて動作確認。
MOS Excel試験でのFLOOR・CEILING・MROUND出題ポイント
MOS Excel 365&2019では、「数式と関数の管理」スキル項目の中で倍数丸め関数が出題されます。ROUND系と区別して理解できているかを問う設問が特徴です。
- FLOOR・CEILINGの選択:「10単位で切り捨て」と「10単位で切り上げ」のどちらを使うかを問う問題が出る。「不足が出てはいけない場合はCEILING」という業務の文脈から判断する
- MROUNDの倍数引数:第2引数が「桁数」ではなく「倍数そのもの」であることを正確に理解する。ROUND(数値, -1)との結果の違いを比較問題で問われることがある
- FLOOR.MATH / CEILING.MATHの存在確認:試験バージョンによっては「Excel 2013以降で追加された関数」として名前を選択させる問題が出る
- 引数の単位感覚:「15分単位」と入力するとき第2引数に15を指定するのか0.25(時間単位)を指定するのかは、第1引数の単位(分か時間か)に合わせる必要がある。単位の取り違えは最も多いミスパターン
- ROUND系との使い分け問題:「50円単位に切り上げよ」という問題でROUNDUPを使うと正解にならない。倍数単位はCEILING/FLOOR/MROUNDを選ぶことを押さえる
MOS試験 倍数丸め関数チェックリスト
| 確認ポイント | 操作内容 | 難易度 |
|---|---|---|
| FLOOR構文の入力 | =FLOOR(数値, 基準値)を正しく入力できる | ★☆☆ |
| CEILINGで切り上げロット計算 | 発注数や人数をパック単位で切り上げる数式を組める | ★★☆ |
| MROUNDで時刻の刻み丸め | 分単位の時刻データを15分・30分刻みに近似できる | ★★☆ |
| ROUND系との選択判断 | 「50円単位」ならCEILING/FLOOR、「小数2桁」ならROUNDを正しく選択できる | ★★☆ |
| FLOOR.MATHの認知 | Excel 2013以降の改良版として名前と用途を把握している | ★★★ |
| 引数単位の統一 | 時間を分で扱う場合・時間で扱う場合に第2引数を正しく合わせられる | ★★★ |
まとめ:倍数丸め3関数の使い分け
本記事のポイントをまとめます。
- FLOOR:基準値の倍数に向けて切り捨て。在庫のロット切り捨て・時間の切り捨て申請・販売価格の切り捨て端数処理に使う
- CEILING:基準値の倍数に向けて切り上げ。発注数の繰り上げ・設備使用時間の切り上げ請求・不足が出てはいけない数量計算に使う
- MROUND:倍数の最も近い値に四捨五入。時刻の刻み整形・価格の近似丸め・重量や数値の統一表示に使う
- FLOOR.MATH / CEILING.MATH:Excel 2013以降の負数対応版。正数のみ扱う通常業務ではFLOOR/CEILINGで十分だが、会計・在庫の負数が混在するデータには切り替える
- ROUND系との境界:「10の何乗単位」はROUND系でも対応可能だが、「任意の倍数・刻み」はFLOOR/CEILING/MROUNDが必要。50円単位・15分単位・24個ロットなど中途半端な単位はFLOOR/CEILING/MROUNDで解決する
- MOS試験の核心:ROUND系か倍数丸め系かの選択判断・第2引数が「倍数そのもの」である点の理解・FLOOR.MATHの名称認知の3点が頻出
FLOOR・CEILING・MROUNDを使いこなすと、「毎回電卓で端数を直す」「ロット計算をCEILING+除算で組み合わせる」といった繰り返し作業が自動化されます。価格表・勤怠集計・発注シートなど倍数単位が登場するファイルから優先して関数を適用し、MOS試験の練習問題でROUND系との使い分けを繰り返し確認することが習熟の近道です。
