Excel

計算結果を比較対象にした時に結果が変わる 回答する


I30

=IF(AND(ABS(I29-I28)<=0.01,ABS(I29-J28)<=0.01,ABS(I29-2.6)<=0.02),"合","否")

I34

=IF(AND(ABS(I33-I32)<=0.01,ABS(I33-J32)<=0.01,I33>=2.5),"合","否")

I28,J28,I29,I32,J32,I33はROUND,桁数2で四捨五入しています

上記のように数式を組んだのですが、どうもABS(I29-J28)やABS(I33-J32)の0.01が0.01以下に含まれていないようです

ABS抜いても同様だったので絶対値関係ありませんでした

<0.02などにすればひとまず解決なのですがもやっとします、何か他に解決方法はあるでしょうか

Newginger 2020.08.24 14:40:05 (2020.08.24 17:08:40 更新) 207

コメントする

コメントするには ログイン していただく必要があります。

回答 1

演算誤差が原因だと思います。

Excelでは内部的に二進数に直して計算しているため、少数同士の引き算等では誤差が生じる場合があります。

今回のケースの場合、

2.58 - 2.57 = 0.0100000000000002

になっているようです。
(桁数を増やして表示すると確認できると思います。)

対策としては、計算値を丸めた上で比較するとかでしょうか。

shirohonoka 2020.08.24 18:48:27 (2020.08.24 20:14:18 更新)

Newginger 2020.08.25 10:31:38
=IF(AND(ABS(ROUND(D10-D9,2))<=0.01,ABS(ROUND(D10-E9,2))<=0.01,ABS(D10-2.6)<=0.02),"合","否") の様にしたら正常な結果が出ました ありがとうございました。

コメントする

コメントするには ログイン していただく必要があります。

回答する
質問に回答するには ログイン していただく必要があります。
一覧に戻る