スプレッドシートのFLOOR.MATH関数の使い方|負方向に切り捨て

スポンサーリンク

「負の数を切り捨てたら、なぜか期待と逆の結果になった」。そんな経験はありませんか?

FLOOR関数は、正の数では問題なく切り捨ててくれます。でも負の数になると「どちらが切り捨て?」と混乱しがちです。

そこで使いたいのがFLOOR.MATH関数です。正の数でも負の数でも、常に「小さい方向」に切り捨ててくれます。さらに第3引数のmodeで方向を切り替えることもできます。

この記事では基本の書き方からFLOOR関数との違い、実務での使いどころまで紹介します。

FLOOR.MATH関数とは?

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

名前の「MATH」は「Mathematics(数学)」の略です。FLOOR関数の改良版で、負の数の扱いが違います。

FLOOR関数との最大の違いは「負の数の切り捨て方向」です。FLOOR関数は負の数に負の倍数を指定する必要があります。一方、FLOOR.MATH関数は正の倍数のまま使えます。mode引数で方向を制御できるのもポイントです。

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

  • 正の数を指定した倍数の方向へ切り捨てる(FLOORと同じ)
  • 負の数を「小さい方向(0から離れる方向)」に切り捨てる(デフォルト)
  • 負の数を「大きい方向(0に近い方向)」に切り捨てることもできる(mode指定)
  • 倍数を省略すると整数に切り捨てる

NOTE

FLOOR.MATH関数はGoogleスプレッドシートの全バージョンで使えます。ExcelではExcel 2013以降で対応しています。

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

基本構文

=FLOOR.MATH(数値, 倍数, mode)

カッコの中に「切り捨てたい数値」「倍数」「丸めの方向」を指定します。

引数の説明

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

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

modeは正の数には影響しません。負の数のときだけ動作が変わります。

mode負の数の丸め方向例: FLOOR.MATH(-7.3, 1, mode)
0(デフォルト)小さい方向(0から離れる)-8
1大きい方向(0に近づく)-7

TIP

modeは「0以外の値」を指定するとmode=1と同じ動作になります。0か0以外かの判定です。

基本的な使い方

正の数を整数に切り捨てる

いちばんシンプルな例です。A2に小数が入っているとします。

=FLOOR.MATH(A2)

A2が「3.7」なら結果は「3」です。倍数もmodeも省略すると、整数への切り捨てになります。これは =FLOOR(A2, 1) と同じ結果です。

正の数を100単位に切り捨てる

=FLOOR.MATH(A2, 100)

A2が「1,280」なら結果は「1,200」です。FLOOR関数と結果は同じです。正の数ではどちらを使っても変わりません。

負の数を小さい方向に切り捨てる(デフォルト)

ここからがFLOOR.MATH関数の出番です。

=FLOOR.MATH(-7.3)

結果は「-8」です。modeを省略(=0)すると、0から離れる方向に丸めます。数直線で見ると「-7.3」より小さい整数「-8」に切り捨てられます。

負の数を大きい方向に切り捨てる(mode=1)

=FLOOR.MATH(-7.3, 1, 1)

結果は「-7」です。mode=1にすると、0に近い方向に丸めます。数直線で見ると「-7.3」より大きい整数「-7」になります。

ちょうど倍数のときの動作

元の値がすでに倍数ちょうどの場合、FLOOR.MATH関数は切り捨てません。

=FLOOR.MATH(1500, 500)

結果は「1500」です。「1000」にはなりません。端数がなければ値はそのまま返ります。

FLOOR関数との違い(負の数の挙動比較)

FLOOR.MATH関数とFLOOR関数の違いは、負の数の扱いに集中しています。正の数では結果は同じです。

正の数での比較

数式結果
=FLOOR(1280, 100)1200
=FLOOR.MATH(1280, 100)1200

正の数ではどちらも同じ結果です。使い分ける必要はありません。

負の数での比較

ここが2つの関数の大きな違いです。「-1280」を100単位で丸めてみましょう。

数式結果方向
=FLOOR(-1280, -100)-13000から離れる
=FLOOR.MATH(-1280, 100)-13000から離れる(デフォルト)
=FLOOR.MATH(-1280, 100, 1)-12000に近づく

FLOOR関数で負の数を扱うには「負の倍数」を指定する必要があります。正の倍数を指定すると#NUM!エラーです。

一方、FLOOR.MATH関数は倍数を正のまま使えます。第3引数のmodeで方向を切り替えるだけです。

どちらを使うべき?

  • 正の数だけ扱う → どちらでもOK(結果は同じ)
  • 負の数も扱う → FLOOR.MATH関数がおすすめ(倍数の符号を気にしなくていい)
  • Excelとの互換性を重視 → FLOOR.MATH関数(Excel 2013以降で同じ動作)

NOTE

FLOOR関数は正の値に負の倍数を指定すると#NUM!エラーになります。FLOOR.MATH関数なら倍数は常に正の値で統一できるので、エラーを避けやすいです。

CEILING.MATH関数との対比

FLOOR.MATH関数とCEILING.MATH関数はペアの関係です。切り捨てと切り上げの違いがあります。

数式結果方向
=FLOOR.MATH(7.3)7切り捨て(小さい方向)
=CEILING.MATH(7.3)8切り上げ(大きい方向)
=FLOOR.MATH(-7.3)-8切り捨て(小さい方向)
=CEILING.MATH(-7.3)-7切り上げ(大きい方向)

正の数でも負の数でも、FLOOR.MATHは常に小さい方向、CEILING.MATHは常に大きい方向に丸めます。

mode引数の違い

mode引数の「デフォルト方向」が逆になっている点に注意してください。

modeFLOOR.MATHCEILING.MATH
0(デフォルト)0から離れる方向0に近づく方向
10に近づく方向0から離れる方向

どちらもmodeを省略した状態で「数学的に直感的な方向」に動きます。切り捨て(FLOOR.MATH)は小さい方向、切り上げ(CEILING.MATH)は大きい方向です。

TIP

正の数だけ扱うなら、modeは気にしなくて大丈夫です。どちらの関数もmodeの影響を受けるのは負の数だけです。

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

損益に負の値が含まれる集計

損益データには正の数(利益)と負の数(損失)が混在します。100円単位で切り捨てたいとき、FLOOR関数だと符号によって倍数を変える必要があります。

=FLOOR.MATH(A2, 100)

A2が「-456」なら「-500」に切り捨てられます。「567」なら「500」です。符号に関係なく同じ数式で処理できるのがメリットです。

温度データの切り捨て(氷点下を含む)

気温の記録で1度単位に切り捨てたい場合です。冬場は氷点下もあるのでFLOOR関数だと面倒です。

=FLOOR.MATH(B2)

B2が「-2.3」なら「-3」に切り捨てられます。「3.7」なら「3」です。正負どちらでも同じ数式で対応できます。

mode=1で「安全側」に丸める

在庫の過不足計算で、マイナス(不足)を小さく見積もりたいケースです。

=FLOOR.MATH(C2, 10, 1)

C2が「-23」なら「-20」になります。不足数を控えめに見積もることで過剰発注を防ぎます。

TIP

正の数だけ扱う場面ではFLOOR関数のほうがシンプルです。負の数が混在するデータではFLOOR.MATH関数を選びましょう。

よくあるエラーと対処法

FLOOR.MATH関数はFLOOR関数よりエラーが起きにくい設計ですが、注意点はあります。

エラー原因対処法
#VALUE!数値や倍数に文字列が入っているセル参照先が数値かどうか確認する
#ERROR!構文ミス(カンマ忘れ、関数名の入力ミス等)数式の入力内容を見直す
結果が0倍数に0を指定している0以外の倍数を指定する
想定と逆の方向に丸まるmodeの指定が逆mode=0(小さい方向)とmode=1(大きい方向)を確認する

FLOOR関数との違い: #NUM!エラー

FLOOR関数では「正の数 + 負の倍数」で#NUM!エラーになります。FLOOR.MATH関数ではこのパターンのエラーは発生しません。倍数の符号を気にせず使えるのがFLOOR.MATHの大きな利点です。

=FLOOR(1280, -100)      → #NUM!エラー
=FLOOR.MATH(1280, -100) → 1200(エラーにならない)

倍数に0を指定したとき

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

=FLOOR.MATH(1234, 0)

結果は「0」です。倍数のセルが空や0になっていないか確認しましょう。

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

スプレッドシートには切り捨て系の関数が複数あります。丸めの方向と引数の違いで使い分けましょう。

関数丸め方第2引数負の数の扱い
FLOOR.MATH倍数の方向へ切り捨て倍数mode引数で方向制御
FLOOR倍数の方向へ切り捨て倍数負の倍数が必要
MROUND最も近い倍数に丸め倍数符号をそろえる必要あり
CEILING.MATH倍数の方向へ切り上げ倍数mode引数で方向制御
CEILING倍数の方向へ切り上げ倍数負の倍数が必要
ROUND四捨五入桁数正負どちらも対応
ROUNDUP常に切り上げ桁数0から離れる方向
ROUNDDOWN常に切り捨て桁数0に近づく方向
INT整数に切り捨てなし常に小さい方向

FLOOR.MATHとFLOORの使い分け

場面おすすめ
正の数だけ扱うどちらでもOK
負の数も扱うFLOOR.MATH
倍数の符号を統一したいFLOOR.MATH
シンプルに書きたい(正の数のみ)FLOOR

FLOOR.MATHとROUNDDOWNの使い分け

どちらも「切り捨て」ですが、指定方法が異なります。

  • FLOOR.MATH: 「倍数」で指定(100単位、500単位など)
  • ROUNDDOWN: 「桁数」で指定(小数第2位、10の位など)

500円単位の切り捨てならFLOOR.MATH、小数第1位での切り捨てならROUNDDOWNが向いています。

TIP

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

まとめ

FLOOR.MATH関数は、数値を指定した倍数の方向へ切り捨てる関数です。FLOOR関数との最大の違いは、負の数の扱いです。

ポイントを整理します。

  • 構文は =FLOOR.MATH(数値, 倍数, mode) の3引数
  • 正の数ではFLOOR関数と結果は同じ
  • 負の数ではmode引数で方向を制御できる(デフォルトは0から離れる方向)
  • 倍数の符号を気にせず使えるので、正負混在データに便利
  • CEILING.MATH関数はペアの切り上げ関数
  • ROUNDDOWN関数は桁数指定、FLOOR.MATH関数は倍数指定の切り捨て

まずは =FLOOR.MATH(A1, 100) で100単位の切り捨てから試してみてください。正の数だけならFLOOR関数でも同じ結果ですが、負の数が出てきたときにFLOOR.MATHなら安心です。

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