• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelの計算について)

Excelの計算について

このQ&Aのポイント
  • Excelの計算に関する現象について理解できずに困っています。数式の結果が0にならず困っており、30桁までの表示が同じ数字になってしまいます。
  • 具体的には、sheet1のA1とsheet2のA1を足して0になるはずなのに、実際には0になりません。さらに、特定の条件下で小数点12桁以下が発生する現象もあります。
  • このような現象が起きる原因がわからず、困っています。Excelに詳しい方にお力をお貸しいただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

言葉で説明するよりも以下のような例がわかりよいかもしれません。 A1セルに「1:00」A2セルに「2:00」と入力し、この2つのセルを選択し、下方向にA4セルまでオートフィルします(このオートフィルされた数値はTREND関数で求めた数値と同じです)。 次にオートフィルで「4:00」と表示されている右のB4セルに「4:00」と手入力し、「=A4-B4」としてA4~C4セルの書式を数値にして30桁表示してみてください。 結果は、A4とB4セルの値は同じにもかかわらず、C4は0になりません(表示有効桁数以下に数字が保持されている)。 一方、「=A4=B4」で2つの値が等しいかどうかを判定すると「TRUE」が返り、引き算した数式でなければエクセルが丸め誤差を修正して同じ値と判定していることになります。

marocoro00
質問者

お礼

ご回答ありがとうございます。 非常にわかりやすかったです。 式は切り上げにして処理する事としました。

その他の回答 (2)

  • TNK787
  • ベストアンサー率17% (25/141)
回答No.3

エクセルの仕様ですあきらめてください (っていうかコンピューターはみなそうです) 少数以下は誤差があると割り切って使ってください そもそも コンピューターは2進数で計算しています ここにその誤差の秘密がありますが http://support.microsoft.com/default.aspx?scid=kb;ja;JP161234

marocoro00
質問者

お礼

ご回答ありがとうございます。 仕様なのですね。切り上げにして計算する事にしました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

エクセルで小数点のある数字(2進数で表示できない数字)を処理する場合、基本的に有効数字15桁目でまでしか表示できないので(30桁表示にしても意味がありません)、有効数字の桁で数字が丸められます。 したがってsheet1のA1セルで計算された値とsheet2のA1で計算された値が丸め方の方法などから実際は同じ値でない場合にご質問の状況が発生します(直接入力や加算の場合など一部のケースでは自動的に丸め誤差を修正する機能があります)。 実際sheet1のA1セルとsheet2のA1に入力された数式などを提示されれば、その原因を特定できると思います。

関連するQ&A

専門家に質問してみよう