• ベストアンサー

エクセルのIF関数で同じ値なのに答えが違う

質問させていただきます。 エクセルのIF関数とAND関数を使って数式を作ったのですが どうしてもうまくいかないので質問します。 ±0.005以内であれば良、それ以外は不良としたいので =IF(AND(-0.005<=A,A<=0.005),"良","不良") Aにはべつのセルで計算した値が入り A=(1000.0-999.9)/2000*100 この場合だとA=0.005なのに不良となります。 A=0.1/2000*100 これだと良となります。 同じ0.005なのになにが違うのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

パソコンにおける演算誤差ですね ちなみに A1セルに A=(1000.0-999.9)/2000*100 A2セルに A=0.1/2000*100 といれて A3セルに =A1=A2 と入れると FALSE が帰ってきます。 =IF(AND(-0.005<=A,A<=0.005),"良","不良") の式を =IF(AND(-0.005<=ROUND(A,5),ROUND(A,5)<=0.005),"良","不良") と十分な小数点以下の桁数で四捨五入しましょう。

nov777x
質問者

お礼

回答ありがとうございます。 対処方法も教えていただきありがとうございました! 無事解決しました。

その他の回答 (3)

  • misawajp
  • ベストアンサー率24% (918/3743)
回答No.4

>同じ0.005なのにな・・・・・ これが勘違い ごく僅か異なり 同じにはなりません 

nov777x
質問者

お礼

回答ありがとうございました。 エクセルにも色々と欠点があったんですね^^;

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.2

パソコンの計算誤差です。 (1000.0-999.9)/2000*100 =0.005000000000000000000000 0.1/2000*100 =0.005000000000001140000000

nov777x
質問者

お礼

回答ありがとうございます。 いったいどこから114がでてくるのやら・・・

noname#154975
noname#154975
回答No.1

Excel、小数点の計算は苦手なんです。 エクセル奇譚 ~ 誤差アラカルト ~ http://hp.vector.co.jp/authors/VA016119/kitan011.html 日経PC21 / 小数計算で発生する「誤差」 - 単純な計算の答えが合わない理由 http://pc.nikkeibp.co.jp/pc21/special/gosa/eg1.shtml

nov777x
質問者

お礼

回答ありがとうございます。 小数点の計算は苦手だったんですか・・・ 参考資料ありがとうございます。

関連するQ&A