プロが教えるわが家の防犯対策術!

エクセルで以下のセルの合計を求めたいのですが、答えが期待する0にはならず、1.31783E-13と表示されます。
1つセルを抜かした場合の合計は、残りの1つのセルを足せば0になる数値で表示されますし、+と-毎にセルを分けsum()を使っても同一の絶対値になります。
どうすれば、以下の合計が0と計算してくれるのでしょうか?

-0.039289402
0.287433851
-0.105799564
1.484977735
0.310788519
-0.191819373
0.779698475
-0.191819373
-0.448235111
1.484977735
-1.282485637
-0.25724289
-2.256294801
-0.627764427
1.465887431
-0.413013169

A 回答 (3件)

計算結果のセルを選択し、右クリックでセルの書式を選択し、表示形式を選択し、分類を数値で選択し、小数点以下の桁数を9にしてください。


答えが-0.000000001 となり、0にならないことがわかるはずです。
小数点第9位の数値を1の位にして計算すると、-11になりますので、0にはなりませんね。
    • good
    • 0

今試しました。



表示形式を数値にすると0になります
    • good
    • 0

エクセルでは、小数を内部で2進数として保持しています。

10進数ではキリの
いい数値でも、2進数では循環数となることも多く、その誤差を丸めることで
大体の計算がすんなりとできます。

丸めた誤差が出てくる場合は今回のケースに限らず、簡単な計算でも発生します。
(1-0.2-0.2-0.2-0.2-0.2でも出てくるかなぁ・・・)
新しいバージョンでは、その部分の対処がされているようです。

その辺の事情・解決法などはマイクロソフトのページで
[JP78113 - [XL97]浮動小数点数値演算の結果に含まれる丸め誤差について]
を参照された方が良いかと思います。

検索すると、奥村晴彦氏(松阪大)のページで丸め誤差を扱う内容がありましたので、
挙げておきます。

参考URL:http://www.matsusaka-u.ac.jp/~okumura/software/e …
    • good
    • 0
この回答へのお礼

丸め誤差は、簡単な計算でも起こるということで、エクセル以外にも今後意識していこうと思います。
ありがとうございました。
なお、1-0.2-0.2-0.2-0.2-0.2は、2002(現在の最新バージョン)では0になり対処されているようでした。

お礼日時:2002/06/28 17:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!