• ベストアンサー

条件付き書式のIF文

office365 A1セルに27.1 A2セルに27.0 が入ってて A3セルに =IF((A1-A2)>0.1,1,0) と設定すると A3セルの値は1(真)になります これはなぜでしょう? A3セルは =IF(0.1>0.1,1,0) で満たしていないので 0(偽)のはずです。 =IF((A1-A2)>0.1,1,0) の結果が1だったら条件付き書式設定で、背景色赤にしたいのですが、 満たしていないのに背景色が赤になってしまうのです。 A1-A2が0.1より大きかったら、背景色を赤にする条件付き書式設定を教えていただきたく。

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

  • ベストアンサー
  • fu5050
  • ベストアンサー率28% (235/820)
回答No.1

同様の質問が過去にありますが、エクセルのバグというかコンピュータが2進法であるのに10進法で表示するため小数点以下があるとこのようなことが起こるようです。 とりあえず、 A1*10-A2*10>1,1,0にしたら偽になりました。

3620313
質問者

お礼

おー、ありがとうございます。 A1*10-A2*10>1,1,0にしたら偽 この方法でばっちりいけました。 助かりました。

Powered by GRATICA

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

まるめ誤差ですね。 どこかのセルに =A1-A2 として結果0.1と表示されたら書式設定の数値で小数点以下を15にしてみると 0.100000000000001 になっています。 なのでエクセルは0.1より大きいと判断してしてしまいます。 対策やまるめ誤差ってなんだとかは エクセル 丸め誤差 対策 で検索してみてください。

3620313
質問者

お礼

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

Powered by GRATICA
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

条件付き書式で、条件を関数で表現する途を選んだとき、その式の意味的にはIF関数なんだか、 条件付き書式では=IFを書かず、=から書き始める。 条件付き書式ではTRUEの場合だけを問題にするからだ。 その辺を気づいていますか? 関係ないかもしれないが、それはそれとして従うべきだ。 ーー 本質問の例では、コンピューターの小数点つき数の振る舞いに関することかもしれない。

3620313
質問者

補足

条件付き書式では=IFを書かず、=から書き始める。 条件付き書式ではTRUEの場合だけを問題にするからだ。 その辺を気づいていますか? → 条件付き書式では=IFを書かず、=から書き始める は間違っています。 =IFから始める数式であってます。 この質問は、条件付き書式に =IF((A1-A2)>0.1,1,0) の背景色赤を設定して動作させた上での質問です。