スプレッドシートのFLOOR関数で倍数切り捨て|15分勤怠・100円原価・50個出荷を1関数で整える

スポンサーリンク

「勤怠を15分単位で切り捨てたい」「原価を100円単位で切り捨てたい」。スプレッドシートでこんな場面はありませんか?

ROUNDDOWN関数は「桁数」で切り捨てる関数です。でも「100円刻み」「15分刻み」のような倍数指定には不向きです。

そんなときに使うのがスプレッドシートのFLOOR関数です。指定した倍数の方向へ常に切り捨ててくれます。

この記事では基本の書き方から倍数の指定パターン、勤怠・原価などの実務テンプレート、MROUNDCEILINGROUNDDOWNとの使い分けまで紹介します。

スプレッドシートのFLOOR関数とは?

FLOOR関数(読み方: フロア関数)は、数値を指定した倍数の方向へ常に切り捨てる関数です。

名前は英語の「floor(床)」が由来です。床の方向へ丸めるイメージですね。たとえば「1,680円」を500円単位で切り捨てると「1,500円」になります。

MROUND関数との最大の違いは「丸めの方向」です。MROUNDは最も近い倍数に丸めます。一方、FLOOR関数は常に切り捨て方向に動きます。

FLOOR関数にできることをまとめると、次のとおりです。

  • 数値を指定した倍数の方向へ常に切り捨てる
  • 15分単位・30分単位の勤怠時間切り捨てに使う
  • 100円単位・500円単位の原価・仕入金額切り捨てに使う
  • 50個単位・100個単位の出荷数切り捨てに使う
  • 小数(0.5刻み・0.1刻み)の切り捨てにも使える

NOTE

FLOOR関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も高いですが、負の値の挙動だけはGoogleとExcelで違うため後述します。

FLOOR関数の書き方(構文と引数)

基本構文

=FLOOR(値, 倍数)

カッコの中に「切り捨てたい数値」と「何の倍数に切り捨てるか」を指定します。

引数の説明

引数必須/任意説明
必須切り捨てたい数値やセル参照、数式
倍数任意切り捨てる基準となる倍数(省略時は1)

倍数を省略すると「1」が使われます。つまり整数への切り捨てになります。

MROUND関数の第2引数も「倍数」です。ただしMROUNDは最も近い倍数に丸めます。FLOORは常に切り捨て方向。この違いが使い分けのカギです。

TIP

倍数は正の数で指定するのが基本です。負の値を扱う場合は「値と倍数の符号を一致させる」のがルール。詳しくは後述の「よくあるエラー」セクションをチェックしてください。

倍数の指定パターン

FLOOR関数は倍数の値によって切り捨ての刻みが変わります。代表的なパターンを表にまとめます。

倍数意味例: FLOOR(1234, 倍数)結果
10001,000単位に切り捨て=FLOOR(1234, 1000)1000
500500単位に切り捨て=FLOOR(1234, 500)1000
100100単位に切り捨て=FLOOR(1234, 100)1200
5050単位に切り捨て=FLOOR(1234, 50)1200
1010単位に切り捨て=FLOOR(1234, 10)1230
55単位に切り捨て=FLOOR(1234, 5)1230
0.50.5単位に切り捨て=FLOOR(1.3, 0.5)1.0
0.10.1単位に切り捨て=FLOOR(1.39, 0.1)1.3

倍数を変えるだけで切り捨ての刻みを自由に設定できます。ROUNDDOWN関数の桁数パターン(-3, -2, -1, 0, 1, 2…)よりも数字そのままで指定できるので直感的です。

01 data multiple pattern

TIP

倍数に小数を指定することもできます。「0.25刻み」なら =FLOOR(A1, 0.25) です。「0.05刻み(5%刻み)」なら =FLOOR(A1, 0.05) という具合です。

基本的な使い方

整数を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」にはなりません。切り捨てる端数がなければ、値はそのまま返ります。この挙動はCEILING関数とも共通の仕様です。

ARRAYFORMULAで列全体を一気に切り捨てる

セルごとにFLOORを書くのは面倒ですよね。スプレッドシートではARRAYFORMULA関数(配列を一括処理する関数)と組み合わせて列を一気に処理できます。

=ARRAYFORMULA(FLOOR(A2:A100, 100))

A2からA100までの値を、全部100円単位で切り捨てて返します。コピー&ペーストの手間が省け、データが増えても自動で適用されるのがメリットです。

実務で使える活用パターン

15分単位の勤怠時間切り捨て

「退勤時刻を15分単位で切り捨てる」ルールの会社で便利です。C2に退勤時刻が入っているとします。

=FLOOR(C2, "0:15")

時刻データの場合は倍数を「”0:15″」のように時刻形式で指定します。「18:22」なら「18:15」に切り捨てられます。

02 result work time floor

NOTE

切り上げたい場合はCEILING関数を使います。最も近い15分に丸めたいならMROUND関数です。会社のルールに合わせて選んでください。

時刻型倍数の指定について

時刻を切り捨てるときは、倍数の書き方に注意が必要です。

倍数の書き方動作
"0:15"15分単位(文字列で時刻指定・推奨)
TIME(0,15,0)15分単位(TIME関数で生成)
15/144015分単位(数値で指定。1日=1440分)
15NG。15日として扱われ意図しない結果に

スプレッドシートは内部で時刻をシリアル値(1日=1.0の小数)として管理しています。そのため数値で「15」と書くと「15日分」と解釈されてしまいます。文字列の "0:15" で渡すのが一番安全です。

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関数が向いています。

50個単位の出荷数切り捨て

ケース出荷(50個入り箱)など、最小単位に合わせて出荷数を計算する場面です。

=FLOOR(E2, 50)

在庫が「173個」なら「150個」分(3ケース)を出荷可能と判定できます。残り23個は次回出荷に回す、というロジックが組めますよ。

よくあるエラーと対処法

FLOOR関数はシンプルな関数ですが、エラーが出ることもあります。

エラー原因対処法
#NUM!正の値に負の倍数を指定した値と倍数の符号をそろえる
#VALUE!値や倍数に文字列が入っているセル参照先が数値かどうか確認する
#ERROR!構文ミス(カンマ忘れ等)数式の入力内容を見直す
結果が0倍数に0を指定している0以外の倍数を指定する
時刻が正しく丸まらない倍数を数値で渡している"0:15" のように時刻形式で指定
切り捨てが起きない値がすでに倍数ちょうどだった元の値を確認する(仕様通り)

値と倍数の符号について

GoogleスプレッドシートのFLOOR関数では、正の値に負の倍数を指定すると#NUM!エラーになります。

=FLOOR(1280, -500)

結果は#NUM!エラーです。正の値を切り捨てるには正の倍数を使ってください。

負の値には負の倍数を指定します。

=FLOOR(-1280, -500)

結果は「-1500」です。負の数では0から離れる方向が「切り捨て」になります。日常業務では正の値を扱うことがほとんどなので、まずは「正の値+正の倍数」を基本に覚えればOKです。

倍数に0を指定したとき

倍数に0を指定すると結果は0になります。

=FLOOR(1234, 0)

結果は「0」です。意図せず倍数のセルが空や0になっていないか確認しましょう。空セルを参照していると、知らない間に「0」を返してしまっていた、というミスはありがちですよ。

時刻倍数が数値扱いされるミス

「15分単位」のつもりで =FLOOR(C2, 15) と書くと、倍数が「15日」として解釈されます。退勤時刻が「18:22」(小数で約0.766)の場合、FLOOR(0.766, 15) は0を返します。

これを防ぐには、必ず時刻形式("0:15")で倍数を指定するか、TIME(0,15,0) のようにTIME関数で時刻オブジェクトとして渡してください。

似た関数との違い・使い分け

スプレッドシートには丸めに使う関数が複数あります。丸めの方向と引数の意味が異なるので、目的に応じて使い分けましょう。

関数丸め方第2引数使いどころ
FLOOR常に切り捨て(倍数)倍数余分に取りたくない場面(勤怠切り捨て・原価)
MROUND最も近い倍数倍数価格設定・見積金額の中立的な丸め
CEILING常に切り上げ(倍数)倍数不足させたくない場面(発注数・見積)
ROUND四捨五入桁数小数第2位・10の位など桁数指定の丸め
ROUNDUP常に切り上げ桁数箱数計算など桁数指定の切り上げ
ROUNDDOWN常に切り捨て桁数消費税切り捨てなど桁数指定の切り捨て
INT整数へ切り捨てなし整数化のみで十分な場面

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は常に下がります。

!_images/spreadsheet-floor-function/03_result_comparison.png

使い分けの基準は次のとおりです。

  • 余分を出したくない → 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関数の出番です。逆に「10の倍数」「100の倍数」のようなキリのいい桁数なら、どちらでも書けます。

FLOORとINTの違い

INT関数も「切り捨て」に見えますが、動作が異なります。INT関数は常に1の倍数(整数)への切り捨てです。

=FLOOR(3.7, 1)   → 3(1の倍数に切り捨て)
=INT(3.7)        → 3(整数に切り捨て)

正の数では同じ結果ですが、負の数で差が出ます。

=FLOOR(-2.3, -1) → -2(0に近づく方向)
=INT(-2.3)       → -3(より小さい整数方向)

FLOORは「倍数を自由に指定できる」点がINTとの最大の違いです。15分単位や500円単位の切り捨てはINT関数ではできません。

TIP

丸め関数の個別記事もチェックしてみてください。ROUNDROUNDUPROUNDDOWNMROUNDCEILINGINTで詳しく解説しています。

Excelとの違い

FLOOR関数はExcelとGoogleスプレッドシートで基本動作は同じですが、細かい仕様が異なります。

項目ExcelGoogleスプレッドシート
構文=FLOOR(数値, 基準値)=FLOOR(値, [倍数])
動作倍数の方向へ切り捨て倍数の方向へ切り捨て
倍数の省略省略不可省略可(デフォルト1)
負の値 + 負の倍数0に近づく方向0から離れる方向
後継関数FLOOR.MATH / FLOOR.PRECISEFLOOR.MATH / FLOOR.PRECISE

最も大きな違いは「負の値の丸め方向」です。Excel(旧FLOOR)では負の値に負の倍数を指定すると0に近づく方向に丸めます。Googleスプレッドシートでは0から離れる方向です。正の値だけなら結果は同じです。

両環境を行き来するシートを作る場合は、FLOOR.MATH を使うと挙動が統一されるので安全ですよ。

まとめ

スプレッドシートのFLOOR関数は、数値を指定した倍数の方向へ常に切り捨てる関数です。

ポイントを整理します。

  • 構文は =FLOOR(値, 倍数) の2引数だけ
  • MROUND関数が「最も近い倍数」に丸めるのに対し、FLOORは「常に切り捨て」
  • 15分単位の勤怠切り捨て・100円単位の原価切り捨て・500円単位の仕入金額切り捨てに便利
  • 時刻倍数は "0:15" のように文字列で指定するのが安全
  • ARRAYFORMULAと組み合わせれば列一括処理が可能
  • 対称ペアのCEILING関数は常に切り上げ方向
  • ROUNDDOWN関数は桁数指定の切り捨て、FLOOR関数は倍数指定の切り捨て

まずは =FLOOR(A1, 100) で100円単位の切り捨てから試してみてください。慣れてきたら時刻倍数 "0:15" で勤怠管理にも応用してみましょう。

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