[[20231010183849]] 『条件付き書式で以上以下』(moto) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『条件付き書式で以上以下』(moto)

条件付き書式で、前回測定値より、0.2以上〜0.3以下まで小さくなっていればセルの色が白色。それ以外は、黄色になる数式がはいっています。
=OR(ABS(G7-G9)<0.2,ABS(G7-G9)>0.301)

しかし、25-0.301=24.699は、白色に
24.472-0.301=24.171は、黄色になります。
どうして、このようなことが起こるのでしょうか
セルを結合している影響でしょうか。

よろしくお願いいたします

< 使用 Excel:Excel2016、使用 OS:Windows11 >


今パソコンが手元に無い状況なんですが、まあ間違いなくこれによるものでしょう。
https://learn.microsoft.com/ja-jp/office/troubleshoot/excel/floating-point-arithmetic-inaccurate-result
(xlg) 2023/10/10(火) 21:09:06

>25-0.301
G7-G9ということですか。
(IT) 2023/10/10(火) 21:44:41

 >25-0.301=24.699は、白色に
 >24.472-0.301=24.171は、黄色になります。

 ・・と言われましても、何がどうおかしいのか分かりません。
 この条件が絡んでいるんでしょうが、どこを見比べればいいのかさっぱり分からないのですが?
  ↓ 
 >前回測定値より、0.2以上〜0.3以下まで小さくなっていれば

(半平太) 2023/10/10(火) 21:51:17


1. ふたつの測定値の差(の絶対値)が 0.2 未満か 0.301 より大きい時にセルが塗りつぶされるように条件付き書式を設定した。
2. 25 と 24.699、24.472 と 24.171 という二組の測定値があって、いずれも差(の絶対値)が 0.301 なのに後者だけ塗りつぶされるのはなんで?

ということだと解釈しました。

 で、実際に上記値を入力して差を取ると、見た目はともに 0.301 になるけど、有効桁数を最大の 15 まで広げてみると前者は 0.300999999999998、後者は 0.301000000000002 になる。

 その理由は先に書いたリンクの通りの Excel あるある。
 
(xlg) 2023/10/11(水) 10:50:49


 成程です。
 雰囲気は分かりました。けど、

 0.2以上〜0.3以下 なら先ずはこう書くものじゃないですか?
                ↓
 =OR(ABS(G7-G9)<0.2,ABS(G7-G9)>0.3)

 ただ、そう言っておいてなんですが、それじゃ小数演算誤差から免れません。
 なので、下3桁で丸めて比較する。

 =OR(ROUND(ABS(G7-G9),3)<0.2,ROUND(ABS(G7-G9),3)>0.3)

(半平太) 2023/10/11(水) 11:34:07


> 0.2以上〜0.3以下 なら先ずはこう書くものじゃないですか?
>                ↓
> =OR(ABS(G7-G9)<0.2,ABS(G7-G9)>0.3)

 きっと差が(見た目は 0.3 だが実は)0.299999999999998 みたいな測定値があって、ちょっと大きくしてみたみたいな?
(xlg) 2023/10/11(水) 11:43:51


 現実使用の有効桁数が下3桁なので、 
 更に1桁低い、0.3001 ならOKだった。けど、0.2も同様にしないとならない。
 つまり、
           ↓        ↓
  =OR(ABS(G7-G9)<0.1999,ABS(G7-G9)>0.3001)

(半平太) 2023/10/11(水) 12:00:47


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.