資料室 > よくあるトラブル > 小数計算で結果が期待したものにならない > 計算したセルをSUM関数で集計すると誤差

計算したセルをSUM関数で集計すると誤差

次のような場合に発生する場合がある。

A1:A10に円単位の金額を入力。
B1へ消費税の計算式として =A1*1.05 とし、B10までこの数式をコピー。
B列の書式設定を[書式(O)]>[セル(E)]の「数値」表示形式で「小数点以下の桁数」を「0」に設定する。
SUM(B1:B10)でB列の集計をした数値と、表示されている数値の合計に差が生じる場合がある。

これを防ぐには以下の方法がある。

【解決策1】

ブック内の計算を表示桁数基準に設定する

  1. [ツール(T)]>[オプション(O)]>[計算方法]タブで
  2. [表示桁数で計算する(P)]のオプションをオンにする。

    「計算が不正確になる」旨のメッセージが表示されますが、「はい」を選択。

これは表示桁数未満の数字を強制的に四捨五入するため、概算値での計算になる、という意味である。
このオプションの選択でブック全体の計算が表示桁数を基準とした計算に変更される。
ブック全体にこの設定が適用される。
表示桁ではかならず四捨五入となるので、切捨て、切上げ計算にはならない。
 (その場合はROUNDUP、ROUNDDOWN関数を使う)

「このブックは四捨五入された整数値しか扱わない!」と言う場合には有効な方法。

【解決策2】

関数を使って数値の桁数を指定する
個々の計算の段階でROUND系の関数によって桁数を確定する。前述の「表示桁数で計算する」にチェックしなければ「表示桁数指定による表示値」と「実際のセル値」に差が生じても正確な計算が期待できる。
ROUND(四捨五入)
ROUNDUP(切上げ)
ROUNDDOWN(切り捨て)
消費税の計算を例にとると、まず次のように消費税を求め、
=ROUND(A1*0.05,0) (四捨五入の場合)
それらをSUM関数で集計することで、所期の合計を求めることができる。

【考察】

Excelは数値の表示桁数を指定した場合、指定桁未満の数値を自動的に四捨五入して表示する。が、実際には四捨五入表示前の数値が実際の値として残っている。四捨五入される部分があった場合は「セルの実際の値」と「表示されている数値」は等しくない。つまり、この場合は「見た目」の合計と、「実際」の合計に差が生じる。

「見た目」を「期待する数値」にするだけでは、期待する計算結果を得ることが出来ない場合があるので、「見た目」と「期待する数値」を同一な状態にしたうえで計算することを心がけたい。


前(小数計算で結果が期待したものにならない) 目次 次(小数計算の誤差)


SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送