よく、消費税計算の関数として「INT(A1*1.05)」のように紹介されている場合があります。
INT関数は関数自体も文字数が少なく桁数を指定する引数も必要ないため、
入力に便利なように見えるからでしょう。
しかしながら消費税計算にかんしては「INT関数の利用は間違いである」と私は断言します。
私が「消費税計算にINT関数を使用するのは間違い」とする理由は
◆小数点以下を切り捨て(INT関数)でも述べていますが、
INT関数は われわれが義務教育で学んだ「切り捨て」とは少し違った端数処理をする関数です。
小数部分を文字通り「切り捨て」に(0に近くなるように)するのではなく、
「引数の数値を超えない整数にする」という処理をします。
TRUNC関数やROUNDDOWN関数を使用した時に比べると負の数値を扱う時に返る値が違ってきます。
INT(-0.05)であっても、計算結果は「-1」です。
売上と値引が請求書に記載されることは珍しくないですが、
例えば、INT関数でそれぞれに消費税計算を行っていたりすると、次のような記載が発生しえます。
| A | B | C | D |
1 | 摘要 | 売上 | 消費税INT(B列×0.05) | 小計 |
2 | ××売上 | 1 | 0 | 1 |
3 | ××値引 | -1 | -1 | -2 |
4 | | | 合計 | -1 |
上記は極端な例ですが、このように絶対値が同じ正、負の数値では計算結果の絶対値が等しくなりません。
売上の時は切り捨て、返金や返品処理の場合は切り上げのような働きをしています。
このような請求書が届けられた場合、相手はその計算のあり方をどのように思うでしょうか。
(値引き金額のほうが増えてしまうのだから、しめしめ、と思うだけかもしれませんが)
このように正の値の時は切り捨て、負の値の時は切り上げのような働きをしてしまいます。
つまり、計算方法がばらばらのように見えてしまいます。
したがって、企業会計上は計算方式の統一という意味でINT関数の使用は好ましくありません。
消費税計算の端数処理が切り捨ての場合はROUNDDOWN関数(または単に小数点以下切り捨ての場合TRUNC関数)
で統一使用するのが妥当と考えます。