アプリ版:「スタンプのみでお礼する」機能のリリースについて

質問させていただきます。

エクセルの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なのになにが違うのでしょうか?
よろしくお願いします。

A 回答 (4件)

>同じ0.005なのにな・・・・・



これが勘違い ごく僅か異なり 同じにはなりません 
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

エクセルにも色々と欠点があったんですね^^;

お礼日時:2012/02/12 17:00

パソコンにおける演算誤差ですね


ちなみに
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),"良","不良")
と十分な小数点以下の桁数で四捨五入しましょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

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

お礼日時:2012/02/12 16:48

パソコンの計算誤差です。



(1000.0-999.9)/2000*100
=0.005000000000000000000000

0.1/2000*100
=0.005000000000001140000000
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

いったいどこから114がでてくるのやら・・・

お礼日時:2012/02/12 16:46

Excel、小数点の計算は苦手なんです。



エクセル奇譚 ~ 誤差アラカルト ~
http://hp.vector.co.jp/authors/VA016119/kitan011 …
日経PC21 / 小数計算で発生する「誤差」 - 単純な計算の答えが合わない理由
http://pc.nikkeibp.co.jp/pc21/special/gosa/eg1.s …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

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

お礼日時:2012/02/12 16:51

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