ExcelのFLOOR関数、FLOOR.MATH関数のモード0、モード1 の違いを紹介します。
ExcelのFLOOR関数を利用する際に、オートコンプリートでFLOORとFLOOR.MATH の2つの関数が表示されます。
似た名前の関数ですが、どのような違いがあるのかを紹介します。
FLOOR.MATH関数は第三引数にモードを指定することができます。モードは0
または1
を指定できます。省略した場合は0
になります。
書式は次の通りです。
FLOOR.MATH([丸める値],[基準値],[モード])
FLOOR, FLOOR.MATH モード0, FLOOR.MATH モード1 のそれぞれの結果を確認します。
次の表を作成します。
Value |
---|
2.12 |
1.0952 |
0.8825 |
0.21525 |
0 |
-0.1859 |
-0.335 |
-0.88877 |
-1.25943 |
-2.4563 |
C3セルに次の数式を入力します。
=FLOOR(B3,1)
D3セルに次の数式を入力します。
=FLOOR.MATH(B3,1)
E3セルに次の数式を入力します。
=FLOOR.MATH(B3,1,1)
C.D,E列のそれぞれの関数の結果が出ました。今のところ違いはありません。
C3,D3,E3セルをコピーし、4行目以降にペーストします。
以下の結果となりました。
Value | FLOOR | FLOOR.MATH mode=0 | FLOOR.MATH mode=1 |
---|---|---|---|
2.12 | 2 | 2 | 2 |
1.0952 | 1 | 1 | 1 |
0.8825 | 0 | 0 | 0 |
0.21525 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
-0.1859 | -1 | -1 | 0 |
-0.335 | -1 | -1 | 0 |
-0.88877 | -1 | -1 | 0 |
-1.25943 | -2 | -2 | -1 |
-2.4563 | -3 | -3 | -2 |
先の表にTRUNC関数の結果の列も追加し以下の表を作成します。
Value | FLOOR | FLOOR.MATH mode=0 | FLOOR.MATH mode=1 | TRUNC |
---|---|---|---|---|
2.12 | =FLOOR(B4,1) | =FLOOR.MATH(B4,1,0) | =FLOOR.MATH(B4,1,1) | =TRUNC(B4) |
1.0952 | =FLOOR(B5,1) | =FLOOR.MATH(B5,1,0) | =FLOOR.MATH(B5,1,1) | =TRUNC(B5) |
0.8825 | =FLOOR(B6,1) | =FLOOR.MATH(B6,1,0) | =FLOOR.MATH(B6,1,1) | =TRUNC(B6) |
0.21525 | =FLOOR(B7,1) | =FLOOR.MATH(B7,1,0) | =FLOOR.MATH(B7,1,1) | =TRUNC(B7) |
0 | =FLOOR(B8,1) | =FLOOR.MATH(B8,1,0) | =FLOOR.MATH(B8,1,1) | =TRUNC(B8) |
-0.1859 | =FLOOR(B9,1) | =FLOOR.MATH(B9,1,0) | =FLOOR.MATH(B9,1,1) | =TRUNC(B9) |
-0.335 | =FLOOR(B10,1) | =FLOOR.MATH(B10,1,0) | =FLOOR.MATH(B10,1,1) | =TRUNC(B10) |
-0.88877 | =FLOOR(B11,1) | =FLOOR.MATH(B11,1,0) | =FLOOR.MATH(B11,1,1) | =TRUNC(B11) |
-1.25943 | =FLOOR(B12,1) | =FLOOR.MATH(B12,1,0) | =FLOOR.MATH(B12,1,1) | =TRUNC(B12) |
-2.4563 | =FLOOR(B13,1) | =FLOOR.MATH(B13,1,0) | =FLOOR.MATH(B13,1,1) | =TRUNC(B13) |
結果は下図です。TRUNCの結果は、FLOOR.MATH の mode=1 の結果と同じことがわかります。
Value | FLOOR | FLOOR.MATH mode=0 | FLOOR.MATH mode=1 | TRUNC |
---|---|---|---|---|
2.12 | 2 | 2 | 2 | 2 |
1.0952 | 1 | 1 | 1 | 1 |
0.8825 | 0 | 0 | 0 | 0 |
0.21525 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
-0.1859 | -1 | -1 | 0 | 0 |
-0.335 | -1 | -1 | 0 | 0 |
-0.88877 | -1 | -1 | 0 | 0 |
-1.25943 | -2 | -2 | -1 | -1 |
-2.4563 | -3 | -3 | -2 | -2 |
結果の表を確認すると、FLOORとFLOOR.MATH mode=0 は同じ動作になります。
FLOOR.MATH mode=1 の場合は、負の数値の場合の動作が異なり、0に近い値を結果として返す動作になります。
また、FLOORとTRUNCでは数値の切り捨てですが、結果が異なります。FLOOR.MATH の mode=1 と TRUNC の結果は同じになることも確認できました。