Excelでは出力結果が似た関数が多くあります。今回はその中で数値の切り捨てに関する関数であるTRUNC関数、ROUNDDOWN関数、INT関数の違いについて確認したいと思います。
マイクロソフトによる各関数の説明
マイクロソフトのサイトではTRUNC関数、ROUNDDOWN関数、INT関数についてそれぞれ以下のように説明されています。
- TRUNC関数
- 数値の小数部を切り捨てて、整数または指定した桁数に変換します。
- ROUNDDOWN関数
- 数値を指定された桁数で切り捨てます。
- INT関数
- 指定された数値を最も近い整数に切り捨てます。
どうでしょう?違いは分かりましたか?正直違いが非常に分かりにくいと思います。
各関数の引数の違い
各関数の引数は以下のとおりです。INT関数だけは数値だけをとり、TRUNC、ROUNDDOWN関数はともに数値と桁数を引数にとります。TRUNC関数の桁数が省略可能であることだけが違うだけです。
- TRUNC(数値, [桁数])
- ROUNDDOWN(数値, 桁数)
- INT(数値)
TRUNC関数、ROUNDDOWN関数、INT関数の違い
実際に実例を見ていただけると分かるのですが、TRUNC関数とROUNDDOWN関数は桁数の引数が省略可能かどうかの違いしかありません。
実際の例を以下に示します。桁数省略以外は違いは見られませんね。
TRUNC関数とROUNDDOWN関数の正の数値の場合の違い
A | B | C | D | E | |
---|---|---|---|---|---|
1 | 対象数値 | ||||
2 | 51.567 | ||||
3 | |||||
4 | 取得したい内容 | TRUNC関数 | ROUNDDOWN関数 | TRUNC関数の数式 | ROUNDDOWN関数の数式 |
5 | 1.少数を切り捨て(桁数省略) | 51 | 桁数省略できない | =TRUNC(A2) | |
6 | 2.少数を切り捨て | 51 | 51 | =TRUNC(A2,0) | =ROUNDDOWN(A2,0) |
7 | 3.少数点第一位より後を切り捨て | 51.5 | 51.5 | =TRUNC(A2,1) | =ROUNDDOWN(A2,1) |
8 | 4.少数点第四位より後を切り捨て | 51.567 | 51.567 | =TRUNC(A2,4) | =ROUNDDOWN(A2,4) |
9 | 5.一の位を切り捨て | 50 | 50 | =TRUNC(A2,-1) | =ROUNDDOWN(A2,-1) |
10 | 6.十の位を切り捨て | 0 | 0 | =TRUNC(A2,-2) | =ROUNDDOWN(A2,-2) |
11 | 7.百の位を切り捨て | 0 | 0 | =TRUNC(A2,-3) | =ROUNDDOWN(A2,-3) |
TRUNC関数とROUNDDOWN関数の負の数値の違い
A | B | C | D | E | |
---|---|---|---|---|---|
1 | 対象数値 | ||||
2 | -51.567 | ||||
3 | |||||
4 | 取得したい内容 | TRUNC関数 | ROUNDDOWN関数 | TRUNC関数の数式 | ROUNDDOWN関数の数式 |
5 | 1.少数を切り捨て(桁数省略) | -51 | 桁数省略できない | =TRUNC(A2) | |
6 | 2.少数を切り捨て | -51 | -51 | =TRUNC(A2,0) | =ROUNDDOWN(A2,0) |
7 | 3.少数点第一位より後を切り捨て | -51.5 | -51.5 | =TRUNC(A2,1) | =ROUNDDOWN(A2,1) |
8 | 4.少数点第四位より後を切り捨て | -51.567 | -51.567 | =TRUNC(A2,4) | =ROUNDDOWN(A2,4) |
9 | 5.一の位を切り捨て | -50 | -50 | =TRUNC(A2,-1) | =ROUNDDOWN(A2,-1) |
10 | 6.十の位を切り捨て | 0 | 0 | =TRUNC(A2,-2) | =ROUNDDOWN(A2,-2) |
11 | 7.百の位を切り捨て | 0 | 0 | =TRUNC(A2,-3) | =ROUNDDOWN(A2,-3) |
TRUNC関数(またはROUNDDOWN関数)とINT関数の違いは以下のとおりです。
- INT関数は数値を切り捨てて整数しか返すことができません(TRUNC関数、ROUNDDOWN関数は少数第一位で切り捨てや十の位での切り捨てなどが可能です)。
- 整数への切り捨てにおいて、正の数値ではTRUNC関数(またはROUNDDOWN関数)とINT関数に違いはありません。
- 整数への切り捨てにおいて、負の数値ではTRUNC関数(またはROUNDDOWN関数)とINT関数に違いがでます。
TRUNC関数(またはROUNDDOWN関数)とINT関数の負の数値の場合の違い
実際にどう違いがあるかを見てみましょう。以下のように、負の数値の場合のINT関数は直観と違う形になります。
A | B | C | D | E | |
---|---|---|---|---|---|
1 | 対象数値 | TRUNC関数 | INT関数 | TRUNC関数の数式 | INT関数の数式 |
2 | 51.567 | 51 | 51 | =TRUNC(A2) | =INT(A2) |
3 | -51.567 | -51 | -52 | =TRUNC(A3) | =INT(A3) |
Excelでの数値の切り捨て方によりこのような違いが起きる訳ですが、プログラマーでない限り、直観的な結果が得られるのがTRUNC関数とだけ覚えておいて差し支えないでしょう。
コメント