「FLOOR関数やFLOOR.MATH関数があるのに、FLOOR.PRECISEって何が違うの?」。そう思った方も多いのではないでしょうか。
スプレッドシートには切り捨て系の関数が複数あります。名前も似ていて、使い分けに迷いますよね。
FLOOR.PRECISE関数は、倍数の符号を一切気にせず、常に数直線上で小さい方向に切り捨ててくれる関数です。引数も2つだけなので、シンプルに使えます。
この記事では基本の書き方からFLOOR関数・FLOOR.MATH関数との違い、実務での使いどころまで紹介します。
スプレッドシートのFLOOR.PRECISE関数とは?
FLOOR.PRECISE関数(読み方: フロア プリサイス関数)は、数値を指定した倍数の方向へ切り捨てる関数です。
名前の「PRECISE」は「正確な・精密な」という意味です。FLOOR関数の改良版として追加されました。
最大の特徴は「倍数の絶対値」を使う点です。倍数に負の値を指定しても、正の値と同じ動作をします。つまり、常に数直線上で小さい方向(負方向)に切り捨てます。
FLOOR.PRECISE関数にできることをまとめると、次のとおりです。
- 正の数を指定した倍数の方向へ切り捨てる
- 負の数を常に「小さい方向(0から離れる方向)」に切り捨てる
- 倍数が正でも負でも同じ結果になる(絶対値を使うため)
- 倍数を省略すると整数に切り捨てる
NOTE
FLOOR.PRECISE関数はGoogleスプレッドシートの全バージョンで使えます。ExcelではExcel 2010以降で対応しています。
FLOOR.PRECISE関数の書き方(構文と引数)
基本構文
=FLOOR.PRECISE(数値, 倍数)
カッコの中に「切り捨てたい数値」と「倍数」を指定します。FLOOR.MATH関数と違い、mode引数はありません。常に小さい方向への切り捨てです。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 数値 | 必須 | 切り捨てたい数値やセル参照、数式 |
| 倍数 | 任意 | 切り捨てる基準となる倍数(省略時は1) |
倍数を省略すると「1」が使われます。つまり整数への切り捨てです。
倍数に負の値を指定しても、絶対値として扱われます。たとえば倍数に「-100」を指定しても「100」と同じ結果です。
TIP
引数が2つだけなのでシンプルです。「倍数の符号を気にしなくていい」というのがFLOOR.PRECISE関数の最大のメリットですよ。
基本的な使い方
正の数を整数に切り捨てる
いちばんシンプルな例です。A2に小数が入っているとします。
=FLOOR.PRECISE(A2)
A2が「3.7」なら結果は「3」です。倍数を省略すると、整数への切り捨てになります。
正の数を100単位に切り捨てる
=FLOOR.PRECISE(A2, 100)
A2が「1,280」なら結果は「1,200」です。正の数ではFLOOR関数やFLOOR.MATH関数と結果は同じです。
負の数を切り捨てる
FLOOR.PRECISE関数は、負の数を常に「小さい方向(0から離れる方向)」に切り捨てます。
=FLOOR.PRECISE(-7.3)
結果は「-8」です。数直線で見ると「-7.3」より小さい整数「-8」に切り捨てられます。
倍数に負の値を指定した場合
倍数の符号は無視されます。これがFLOOR.PRECISE関数の特徴です。
=FLOOR.PRECISE(-7.3, -1)
結果は「-8」です。倍数に「-1」を指定しても「1」と同じ動作です。
ちょうど倍数のときの動作
元の値がすでに倍数ちょうどの場合、切り捨ては起きません。
=FLOOR.PRECISE(1500, 500)
結果は「1500」です。「1000」にはなりません。端数がなければ値はそのまま返ります。
FLOOR関数・FLOOR.MATH関数との違い
FLOOR系関数は3つありますが、違いは「負の数の扱い」と「引数の数」に集中しています。正の数では3つとも同じ結果です。
3関数の比較表
| 項目 | FLOOR | FLOOR.MATH | FLOOR.PRECISE |
|---|---|---|---|
| 引数の数 | 2 | 3(mode付き) | 2 |
| 倍数の符号 | 数値と同じ符号が必要 | 符号を無視 | 符号を無視(絶対値) |
| 負の数の方向 | 0から離れる(負の倍数で指定) | mode=0: 0から離れる / mode=1: 0に近づく | 常に0から離れる |
| 方向の切り替え | できない | mode引数で可能 | できない(常に負方向) |
負の数での比較(具体例)
「-1280」を100単位で丸めてみましょう。
| 数式 | 結果 | 方向 |
|---|---|---|
| =FLOOR(-1280, -100) | -1300 | 0から離れる |
| =FLOOR.MATH(-1280, 100) | -1300 | 0から離れる(デフォルト) |
| =FLOOR.MATH(-1280, 100, 1) | -1200 | 0に近づく |
| =FLOOR.PRECISE(-1280, 100) | -1300 | 0から離れる(常にこの方向) |
FLOOR.PRECISE関数とFLOOR.MATH関数(mode=0)は同じ結果です。違いは「方向を切り替えられるかどうか」です。
どの関数を使うべき?
| 場面 | おすすめ |
|---|---|
| 正の数だけ扱う | どれでもOK(結果は同じ) |
| 負の数も扱う(常に小さい方向でいい) | FLOOR.PRECISE(引数がシンプル) |
| 負の数の方向を切り替えたい | FLOOR.MATH(mode引数で制御) |
| 負の倍数を明示的に指定したい | FLOOR(レガシーな書き方) |
NOTE
迷ったらFLOOR.PRECISE関数がおすすめです。引数が2つだけで、倍数の符号を気にする必要がありません。方向を切り替えたくなったらFLOOR.MATH関数に変えましょう。
実務で使える活用パターン
価格を100円単位に切り捨てる
見積金額の端数を100円単位で切り捨てたい場面です。
=FLOOR.PRECISE(A2, 100)
A2が「2,750」なら結果は「2,700」です。「3,120」なら「3,100」になります。端数を切り捨てて見積金額を整えたいときに便利ですよ。
時間を15分単位に切り捨てる
作業時間の記録を15分刻みにしたい場合です。スプレッドシートでは時間は「1日=1」の小数値(シリアル値)で管理されています。15分は "0:15" で指定できます。
=FLOOR.PRECISE(A2, "0:15")
A2が「9:22」なら結果は「9:15」です。「10:47」なら「10:45」になります。勤怠管理や作業報告で活用してみてください。
予算計算で1,000円単位に切り捨てる
予算の端数を1,000円単位で切り捨てたい場面です。
=FLOOR.PRECISE(A2, 1000)
A2が「45,678」なら結果は「45,000」です。予算申請で端数をきれいに揃えたいときに使えます。
負の値を含む損益データの切り捨て
損益データには利益(正の数)と損失(負の数)が混在します。FLOOR.PRECISE関数なら符号を気にせず同じ数式で処理できます。
=FLOOR.PRECISE(A2, 100)
A2が「567」なら「500」です。「-456」なら「-500」です。どちらの符号でも倍数は「100」のままでOKです。
TIP
正の数だけの切り捨てならFLOOR関数でも十分です。負の数が混在するデータではFLOOR.PRECISE関数を選ぶと安心ですよ。
よくあるエラーと対処法
FLOOR.PRECISE関数は倍数の符号を気にしなくていいぶん、エラーが起きにくい関数です。それでもいくつか注意点があります。
| エラー | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 数値や倍数に文字列が入っている | セル参照先が数値かどうか確認する |
| #ERROR! | 構文ミス(カンマ忘れ、関数名の入力ミス等) | 数式の入力内容を見直す |
| 結果が0 | 倍数に0を指定している | 0以外の倍数を指定する |
FLOOR関数との違い: #NUM!エラーが起きない
FLOOR関数では「正の数 + 負の倍数」で#NUM!エラーになります。FLOOR.PRECISE関数ではこのエラーは起きません。
=FLOOR(1280, -100) → #NUM!エラー
=FLOOR.PRECISE(1280, -100) → 1200(エラーにならない)
倍数の符号を間違えてもエラーにならないのは、FLOOR.PRECISE関数の大きな利点です。
倍数に0を指定したとき
倍数に0を指定すると結果は0になります。
=FLOOR.PRECISE(1234, 0)
結果は「0」です。倍数のセルが空や0になっていないか確認しましょう。
似た関数との違い・使い分け
スプレッドシートには切り上げ・切り捨て系の関数が複数あります。丸めの方向と引数の違いで使い分けましょう。
| 関数 | 丸め方 | 第2引数 | 負の数の扱い |
|---|---|---|---|
| FLOOR.PRECISE | 倍数の方向へ切り捨て | 倍数 | 常に0から離れる(小さい方向) |
| FLOOR.MATH | 倍数の方向へ切り捨て | 倍数 | mode引数で方向制御 |
| FLOOR | 倍数の方向へ切り捨て | 倍数 | 負の倍数が必要 |
| MROUND | 最も近い倍数に丸め | 倍数 | 符号をそろえる必要あり |
| CEILING.PRECISE | 倍数の方向へ切り上げ | 倍数 | 常に0に近づく(大きい方向) |
| CEILING.MATH | 倍数の方向へ切り上げ | 倍数 | mode引数で方向制御 |
| CEILING | 倍数の方向へ切り上げ | 倍数 | 負の倍数が必要 |
| ROUNDDOWN | 常に切り捨て | 桁数 | 0に近づく方向 |
| INT | 整数に切り捨て | なし | 常に小さい方向 |
FLOOR.PRECISEとCEILING.PRECISEの使い分け
この2つはペアの関数です。丸める方向が逆なだけで、引数の使い方は同じです。
| 場面 | おすすめ |
|---|---|
| 端数を切り捨てたい(小さい方向へ) | FLOOR.PRECISE |
| 端数を切り上げたい(大きい方向へ) | CEILING.PRECISE |
| 引数をシンプルにしたい | どちらもOK(ともに2引数) |
FLOOR.PRECISEとROUNDDOWNの使い分け
どちらも「切り捨て」ですが、指定方法が異なります。
- FLOOR.PRECISE: 「倍数」で指定(100単位、500単位など)
- ROUNDDOWN: 「桁数」で指定(小数第2位、10の位など)
500円単位の切り捨てならFLOOR.PRECISE、小数第1位での切り捨てならROUNDDOWNが向いています。
TIP
丸め関数の個別記事もチェックしてみてください。FLOOR・FLOOR.MATH・CEILING.PRECISE・CEILING.MATH・CEILING・MROUND・ROUNDDOWN・INTで詳しく解説しています。
まとめ
FLOOR.PRECISE関数は、数値を指定した倍数の方向へ切り捨てる関数です。倍数の符号を無視して常に小さい方向(負方向)に切り捨てるのが最大の特徴です。
ポイントを整理します。
- 構文は
=FLOOR.PRECISE(数値, 倍数)の2引数でシンプル - 倍数の符号は無視される(絶対値として使われる)
- 正の数ではFLOOR関数・FLOOR.MATH関数と結果は同じ
- 負の数では常に0から離れる方向に切り捨てる(方向の切り替えはできない)
- 方向を切り替えたい場合はFLOOR.MATH関数のmode引数を使う
- CEILING.PRECISE関数はペアの切り上げ関数
まずは =FLOOR.PRECISE(A1, 100) で100単位の切り捨てから試してみてください。倍数の符号を気にしなくていいので、数式がシンプルに保てますよ。
