スプレッドシートのFLOOR関数の使い方|切り捨て(倍数指定)
「勤怠を15分単位で切り捨てたい」「原価を100円単位で切り捨てたい」。こんな場面はありませんか?
ROUNDDOWN関数は「桁数」で切り捨てる関数です。でも「100円刻み」「15分刻み」のような倍数指定には不向きです。
そんなときに使うのがFLOOR関数です。指定した倍数の方向へ常に切り捨ててくれます。
この記事では基本の書き方から倍数の指定パターン、実務での使いどころまで紹介します。
FLOOR関数とは?
FLOOR関数(読み方: フロア関数)は、数値を指定した倍数の方向へ常に切り捨てる関数です。
名前は英語の「floor(床)」が由来です。床の方向へ丸めるイメージですね。「1,680円」を500円単位で切り捨てると「1,500円」です。
MROUND関数との最大の違いは「丸めの方向」です。MROUNDは最も近い倍数に丸めます。一方、FLOOR関数は常に切り捨て方向です。
FLOOR関数にできることをまとめると、次のとおりです。
- 数値を指定した倍数の方向へ常に切り捨てる
- 15分単位・30分単位の勤怠時間切り捨てに使う
- 100円単位・500円単位の原価・仕入金額切り捨てに使う
- 50個単位・100個単位の出荷数切り捨てに使う
NOTE
FLOOR関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も高いです。
FLOOR関数の書き方(構文と引数)
基本構文
=FLOOR(値, 倍数)
カッコの中に「切り捨てたい数値」と「何の倍数に切り捨てるか」を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値 | 必須 | 切り捨てたい数値やセル参照、数式 |
| 倍数 | 任意 | 切り捨てる基準となる倍数(省略時は1) |
倍数を省略すると「1」が使われます。つまり整数への切り捨てになります。
MROUND関数の第2引数も「倍数」です。ただしMROUNDは最も近い倍数に丸めます。FLOORは常に切り捨て方向。この違いが使い分けのカギです。
倍数の指定パターン
FLOOR関数は倍数の値によって切り捨ての刻みが変わります。代表的なパターンを表にまとめます。
| 倍数 | 意味 | 例: FLOOR(1234, 倍数) | 結果 |
|---|---|---|---|
| 1000 | 1,000単位に切り捨て | =FLOOR(1234, 1000) | 1000 |
| 500 | 500単位に切り捨て | =FLOOR(1234, 500) | 1000 |
| 100 | 100単位に切り捨て | =FLOOR(1234, 100) | 1200 |
| 50 | 50単位に切り捨て | =FLOOR(1234, 50) | 1200 |
| 10 | 10単位に切り捨て | =FLOOR(1234, 10) | 1230 |
| 5 | 5単位に切り捨て | =FLOOR(1234, 5) | 1230 |
| 0.5 | 0.5単位に切り捨て | =FLOOR(1.3, 0.5) | 1.0 |
| 0.1 | 0.1単位に切り捨て | =FLOOR(1.39, 0.1) | 1.3 |
倍数を変えるだけで切り捨ての刻みを自由に設定できます。ROUNDDOWN関数の桁数パターンよりも直感的です。
TIP
倍数に小数を指定することもできます。「0.25刻み」なら
=FLOOR(A1, 0.25)です。
基本的な使い方
整数を100単位に切り捨てる
いちばんシンプルな例です。A2に金額が入っているとします。
=FLOOR(A2, 100)
A2が「1,280円」なら結果は「1,200円」です。「1,299円」でも「1,200円」に切り捨てられます。端数がいくらあっても前の100の倍数に戻ります。
小数を0.5単位に切り捨てる
評価スコアを0.5刻みに切り捨てたい場面です。
=FLOOR(B2, 0.5)
B2が「3.7」なら「3.5」に切り捨てられます。「3.1」なら「3.0」です。「3.0」ちょうどなら端数がないのでそのままです。
ちょうど倍数のときの動作
元の値がすでに倍数ちょうどの場合、FLOOR関数は切り捨てません。
=FLOOR(1500, 500)
結果は「1500」です。「1000」にはなりません。切り捨てる端数がなければ、値はそのまま返ります。
実務で使える活用パターン
15分単位の勤怠時間切り捨て
「退勤時刻を15分単位で切り捨てる」ルールの会社に便利です。C2に退勤時刻が入っているとします。
=FLOOR(C2, "0:15")
時刻データの場合は倍数を「”0:15″」のように時刻形式で指定します。「18:22」なら「18:15」に切り捨てられます。
NOTE
切り上げたい場合はCEILING関数を使います。最も近い15分に丸めたいならMROUND関数です。会社のルールに合わせて選んでください。
100円単位の原価切り捨て
原価管理で端数を切り捨てたいときに使います。A2に計算上の原価が入っているとします。
=FLOOR(A2, 100)
「45,678円」なら「45,600円」に切り捨てられます。端数を切り捨てることでコスト計算を安全側に見積もれます。
MROUND関数だと上に丸まるケースもあります。常に切り捨てたいならFLOOR関数のほうが安全です。
30分単位の作業時間切り捨て
報告書で作業時間を30分単位にそろえたいときに使います。
=FLOOR(D2, "0:30")
「2:45」なら「2:30」に切り捨てられます。作業時間を多めに報告せず正確に記録できます。
500円単位の仕入金額切り捨て
仕入れ値を500円単位に切り捨てたいケースです。
=FLOOR(A2, 500)
計算で「1,680円」になった場合、「1,500円」に切り捨てられます。CEILING関数なら「2,000円」です。余分にコストを見積もりたくないならFLOOR関数が向いています。
よくあるエラーと対処法
FLOOR関数はシンプルな関数ですが、エラーが出ることもあります。
| エラー | 原因 | 対処法 |
|---|---|---|
| #NUM! | 正の値に負の倍数を指定した | 値と倍数の符号をそろえる |
| #VALUE! | 値や倍数に文字列が入っている | セル参照先が数値かどうか確認する |
| #ERROR! | 構文ミス(カンマ忘れ等) | 数式の入力内容を見直す |
| 結果が0 | 倍数に0を指定している | 0以外の倍数を指定する |
| 切り捨てが起きない | 値がすでに倍数ちょうどだった | 元の値を確認する |
値と倍数の符号について
GoogleスプレッドシートのFLOOR関数では、正の値に負の倍数を指定すると#NUM!エラーになります。
=FLOOR(1280, -500)
結果は#NUM!エラーです。正の値を切り捨てるには正の倍数を使ってください。
負の値には負の倍数を指定します。
=FLOOR(-1280, -500)
結果は「-1500」です。負の数では0から離れる方向が「切り捨て」になります。
倍数に0を指定したとき
倍数に0を指定すると結果は0になります。
=FLOOR(1234, 0)
結果は「0」です。意図せず倍数のセルが空や0になっていないか確認しましょう。
似た関数との違い・使い分け
スプレッドシートには倍数で丸める関数が3つあります。丸めの方向が異なるので、目的に応じて使い分けましょう。
| 関数 | 丸め方 | 第2引数 | 使いどころ |
|---|---|---|---|
| FLOOR | 常に切り捨て(倍数) | 倍数 | 余分に取りたくない場面(勤怠切り捨て・原価) |
| MROUND | 最も近い倍数 | 倍数 | 価格設定・見積金額の中立的な丸め |
| CEILING | 常に切り上げ(倍数) | 倍数 | 不足させたくない場面(発注数・見積) |
| ROUND | 四捨五入 | 桁数 | 小数第2位・10の位など桁数指定の丸め |
| ROUNDUP | 常に切り上げ | 桁数 | 箱数計算など桁数指定の切り上げ |
| ROUNDDOWN | 常に切り捨て | 桁数 | 消費税切り捨てなど桁数指定の切り捨て |
FLOOR・MROUND・CEILINGの使い分け
この3関数は「倍数で丸める」という共通点があります。違いは丸めの方向だけです。
具体例で比較しましょう。「1,280円」を500円単位で丸める場合です。
=FLOOR(1280, 500) → 1000(切り捨て)
=MROUND(1280, 500) → 1500(最も近い倍数)
=CEILING(1280, 500) → 1500(切り上げ)
次に「1,680円」で比較します。
=FLOOR(1680, 500) → 1500(切り捨て)
=MROUND(1680, 500) → 1500(最も近い倍数)
=CEILING(1680, 500) → 2000(切り上げ)
1,680円ではFLOORもMROUNDも「1,500円」です。しかし1,280円では結果が分かれます。FLOORは「1,000円」、MROUNDは「1,500円」です。MROUNDは上がることもありますが、FLOORは常に下がります。
使い分けの基準は次のとおりです。
- 余分を出したくない → FLOOR
- 中立的に丸めたい → MROUND
- 不足を防ぎたい → CEILING
FLOORとROUNDDOWNの使い分け
FLOOR関数とROUNDDOWN関数はどちらも「常に切り捨てる」関数です。違いは第2引数の指定方法です。
- FLOOR: 「倍数」で指定(500単位、100単位、0.25刻みなど)
- ROUNDDOWN: 「桁数」で指定(小数第2位、10の位など)
「15分単位に切り捨てたい」ならFLOOR関数が直感的です。「小数第1位で切り捨てたい」ならROUNDDOWN関数です。
500や15、50のような倍数はROUNDDOWN関数では対応できません。この場合はFLOOR関数の出番です。
FLOORとINTの違い
INT関数も「切り捨て」に見えますが、動作が異なります。INT関数は常に1の倍数(整数)への切り捨てです。
=FLOOR(3.7, 1) → 3(1の倍数に切り捨て)
=INT(3.7) → 3(整数に切り捨て)
正の数では同じ結果ですが、負の数で差が出ます。
=FLOOR(-2.3, 1) → -3(0から離れる方向に切り捨て)
=INT(-2.3) → -3(小さい整数方向に切り捨て)
FLOORは「倍数を自由に指定できる」点がINTとの最大の違いです。15分単位や500円単位の切り捨てはINT関数ではできません。
TIP
丸め関数の個別記事もチェックしてみてください。ROUND・ROUNDUP・ROUNDDOWN・MROUND・CEILING・INTで詳しく解説しています。
Excelとの違い
FLOOR関数はExcelとGoogleスプレッドシートで基本動作は同じですが、細かい仕様が異なります。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =FLOOR(数値, 基準値) | =FLOOR(値, 倍数) |
| 動作 | 倍数の方向へ切り捨て | 倍数の方向へ切り捨て |
| 倍数の省略 | 省略不可 | 省略可(デフォルト1) |
| 負の値 + 負の倍数 | 0に近づく方向 | 0から離れる方向 |
| 後継関数 | FLOOR.MATH / FLOOR.PRECISE | なし |
最も大きな違いは「負の値の丸め方向」です。Excelでは負の値に負の倍数を指定すると0に近づく方向に丸めます。Sheetsでは0から離れる方向です。正の値だけなら結果は同じです。
TIP
Excelの後継関数についてはFLOOR.MATHとFLOOR.PRECISEの比較記事で解説しています。
まとめ
FLOOR関数は、数値を指定した倍数の方向へ常に切り捨てる関数です。
ポイントを整理します。
- 構文は
=FLOOR(値, 倍数)の2引数だけ - MROUND関数が「最も近い倍数」に丸めるのに対し、FLOORは「常に切り捨て」
- 15分単位の勤怠切り捨て・100円単位の原価切り捨て・500円単位の仕入金額切り捨てに便利
- 対称ペアのCEILING関数は常に切り上げ方向
- ROUNDDOWN関数は桁数指定の切り捨て、FLOOR関数は倍数指定の切り捨て
まずは =FLOOR(A1, 100) で100円単位の切り捨てから試してみてください。
