Excelは、奥深い3・・・コンピュータは小数点計算が実は苦手
Excelってほんと奥深い。
あることから、ここ2ヶ月ほどは、ほんとExcelに大変お世話になりました。
その中で、どうしても解決できないことがあったので、書いておきたい。
Excelで集計していくと、ときに小数点10桁くらいに数字が残っていることがあった。
EXCELの単純な計算に誤差があるようです。12.3-12=0.3000000000000010000となり0.3にならず困っています。もし、どのEXCELも同じ現象なら大きな問題です。
表上では、小数点2桁で揃えた数字で一致するはずが、検算のためと作った「if」で前と、後を比較すると、違うと表示されたので、小数点以下表示を拡大していくと・・・・ずっと下の方に数字が残っていることが判明。
これ何?
それとも、集計対象のデータに、誤って入力された数値がある訳?!
なぁんて、いろいろデータの粗探しもするが、とうとう疲れてしまった。
この期間は、土日も休みなしで3週間連続勤務となっていて、自分の間違いか?!とも心配になる始末・・・
でたどり着いたのが、先に紹介したMicrosoftのコミュニティに投稿されたもの。そのほかにも同様な紹介は多々あったので、これで安心して作業を進められることとなった。
コミュニティに投稿されていた「KUNIOTOYODA」さん、ありがとう!!
回答者のお一人「y sakuda」さんの解説の一部
Excelに限らず、コンピュータすべてに当てはまる話です。
ただ、Excelはこの辺りを結構サービスしてごまかしてるので、気が付かないケースもあります。
理由はコンピュータはすべて二進数で処理するわけですが、小数点以下の数字は2^-n の和で表現されるため、ほとんどの数値が循環小数になり正確には表現できません。
例えば、0.1なんかもだめです。
お〜!そうなんだ。
これ、Excelダメじゃん!ってことじゃなく、コンピュータ全ての事象なんですね!
もうお一人は「マックちゃん」さん
浮動小数点演算についての解説と、こういう場合にExcelでどう処理したらいいかを細かく解説。
いやぁ〜有難い、ありがたい。
私の場合は、統計処理しているのでもないので、そこまで正確に数値の処理をせねばならないわけでもなく、これが分かっただけで助かりました。
これを知らなければ、疲れ果てた私の頭は、『ま、いいじゃん!これは黙っておいて、出来たことにしておこう!』って具合に進んでいたはずです。