Excelで消費税を自動計算させると合計が合わない | Tascal PCサポート情報

Tascal PCサポート情報

自分のサポート情報の覚え書きならびに、
主にタスカルお客様に向けての、
サポートトラブルや、
PC関連サポート案内です。

下のような納品請求書を作りました。

 
  

・・・何かおかしくないでしょうか??

赤枠でも書いたとおり、合計が合いません。

消費税は
186+180+152=¥518 なのに ¥519
税込み金額は
2,515+2,429+2,057=¥7,001 なのに ¥7,002 

になってしまっています。

えええ?なぜ????・・・・・・・・・・・・

お気づきの方も多いかもしれませんが、これはExcelが裏で小数点以下を計算してしまっているからなのです。

上の計算式、通貨のため小数点以下を見えないようにしていますが、実際は下のようになっています。

  
 

これで合計が合わない理由がおわかりいただけたかと思います。
しかも消費税というのは小数点以下切り捨てなのに、Excelは四捨五入してしまっています。

消費税が5%の時は結構キリが良かったので少なかったですが、8%になったため、
単純な足し算やかけ算、Σ(sum関数)では、Excelで消費税が絡んだ計算は1円単位がおかしくなってしまうのです。

では、どうやって計算式を作ればよいのでしょうか?

今現在、消費税欄の数式は 

  
  
=F16*0.08

で、

税込み価格欄の数式は

 
  
=F16+G16

で、
合計欄はsum関数でΣ計算をしています。

消費税計算等、小数点以下を統一させるためには ROUND系の関数を使います。

ROUND(数値,桁数)  : 数値を指定された桁数にて四捨五入にします。
ROUNDDOWN(数値,桁数)  : 数値を指定された桁数にて切り捨てにします。
ROUNDUP(数値,桁数)  : 数値を指定された桁数にて切り上げにします。


ということで、今回は切り捨てますから ROUNDDOWN を使用します。

消費税計算式を

=F16*0.08  → =ROUNDDOWN(F16*0.08,0)

 

とします。F16*0.08 を小数点以下1桁を切り捨てろと(整数位まで)いう意味です。
ちなみに、小数点以下2桁を切り捨てたい(小数点以下1桁まで)場合は

=ROUNDDOWN(F16*0.08,1)

となります。
税込み価格欄は消費税が既に整数になっていますので、そのままの計算式でよいです。
そうすると、下記のようになります。

 
  


これで、きっちりと消費税計算ができました。
今回もしExcelを信用して、この計算方法でそのまま請求していたら2円余分にいただいていたということになりますね。

 ちなみにこれ、一項目毎を外税じゃなくて、すべて合計してから消費税をかけると、
¥6,483 × 1.08 = ¥7,001.64
で、合計は ¥7,001・・・となります。

このパターンで見積書や納品書作っているところ多いのではないでしょうかね。
ここもExcelに計算させると四捨五入して消費税込みで ¥7,002 と返してくるので、
ちゃんと ROUNDDOWN 関数で消費税部分は計算させる必要がありますね。

 さらに、一品一品毎外税で消費税計算すると、
¥137 × 1.08 = ¥147.96  ¥147 × 17 = ¥2,499
¥173 × 1.08 = ¥186.84  ¥186 × 13 = ¥2,418
¥127 × 1.08 = ¥137.16  ¥137 × 15 = ¥2,055
¥2,499 + ¥2,418 + ¥2,055 = ¥6,972
・・・と、32円も消費税が違ってくる・・・と言う事になります!

※本当は今回の請求納品書、この一品一品の計算式
=ROUNDDOWN(E16*0.08,0)*D16
が、正しい消費税計算なのですが、今回はROUND関数の記事なので、数式をわざと簡単にしました。


 どこに消費税を乗っけるかで、そしてExcelの計算式をちゃんとしないと、実はかなり変わってきてしまうのですね。 

一個一個の誤差は小さいですが、数が増えると大きな誤差になってきますので、Excelを使っての消費税計算にはご注意ください。