キャリア・ラボHOMEキャリア・ラボHOME  >  Skilll Up  Lab  >  IT・PC・CAD  >  PCまめ知識  >  Side-A・第31回 

PCまめ知識

PCまめ知識
 
PCまめ知識side-A【第31回】 
Excelで作成した「検査表」で
小数値を扱うIF数式が誤判断する?
 

 Excelを使って、『測定値があらかじめ規定しておいた基準値以上だったら合格として、その値に満たなかったら不合格とする』といった「検査表」を作成する場合の注意点を解説しましょう。

 まず、緑の「検査表」をじっくり眺めてみてください。E列に測定値Aと測定値Bの差を求める数式が、F列に『その差が基準値以上だったら「OK」と表示し、それ以外の場合には「NG」と表示する』数式が設定してあります。この「検査表」に整数値を入力してみると、正しく判定されていることがわかります。測定値や基準値がすべて整数の場合には、とくに注意すべき点はありません。

 一方、青の「検査表」には緑の「検査表」とまったく同じ数式が設定してありますが、唯一、測定値や基準値を小数点下1桁の小数で入力・指定するところが違っています。では、こちらの「検査表」に小数点1桁の小数を入力してみると……なんと、本来、「OK」と表示すべきところなのに「NG」と誤って表示されている箇所があります。

 
 
No.1

F列の「判定」欄(F8セル〜)に『測定値Aと測定値Bの差がE4セルの値以上だったら「OK」と表示し、それ以外だったら「NG」と表示する』数式が設定してある

次へ
 
No.2

サンプル2とサンプル6だけが「NG」判定となっているが、どちらもE列の値が基準値の「2」以上ではないので、正しい判定結果だ

 
 
No.3

数式は上図とまったく同じだが、基準値や測定値などを設定・入力するセルの表示形式を小数点1桁まで表示する書式にしてある

次へ 
 
No.4

サンプル4とサンプル5は測定値Aと測定値Bの差が「0.2」で、基準値の「0.2」と同じなのに、「NG」判定となってしまっている

 

 誤って判定をしてしまったのは、Excelが小数を扱う仕組みに原因があります。コンピュータは数値を「0」と「1」だけからなる2進数で扱っていますが、2進数では小数を精確に表現することができないため、近似値で表現するのが一般的です。

 今回の「検査表」のように、2つの値を比較する場合、見た目は同じ小数に見えても、実際には異なっているということが起こりえるのです。

 ここら辺の仕組みは頭で考えるだけでは、なかなかピンとこないかも知れません。測定値Aと測定値Bを引き算する数式が設定しあるセル(E8セル〜)の表示形式をより多くの桁を表示するように変更してみてください。「0.2」と表示されていた小数の表示桁数を増やしていくと、あるところでいきなり
「0.199999999999996」というように、異常に切りの悪い小数の表示に変わります。これが「小数値を近似値で表現している」ということです。

 
 
No.5

「小数点表示桁上げ」ボタンを1回クリックする度に、選択していたセル範囲の小数点以下の表示が1桁ずつ増えていく

次へ
 
No.6

何度か「小数点表示桁上げ」ボタンをクリックすると、それまではぴったり0で終わっていたE列の表示が
「0.199999……」といった表示に切り替わった。サンプル4とサンプル5が「NG」判定となった理由も納得できるだろう

 
 小数同士を比較したことが合否判断を誤った箇所が出た原因ですので、対策としては、小数同士を比較しないようにします。すなわち、入力した小数を10倍・100倍……などして、小数を伴わない整数に変えたうえで、その小数と基準値を比較すればよいのです。基準値の方も同じように10倍・100倍……しておくのを忘れないようにしてください。これで、合否を判定する数式では整数同士を比較することになりますので、正しい結果が表示されるようになります。
 
 
No.7

小数値の誤差対策として、ユーザが入力した測定値Aと測定値Bをそれぞれ10倍する数式を設定した列(D列とF列)を挿入して、その差とやはり10倍した基準値を比較して合否判定を行うように

次へ
 
No.8

先ほどとまったく同じ小数点1桁の小数値を入力してみたところ。今度は、サンプル4とサンプル5も正しく「OK」判定となっている

前回へ前回へ <PCまめ知識:最新回へ戻る> 次回へ次回へ

エントリー

お仕事を始めるには、フジスタッフへの派遣登録が必要です。

お仕事をはじめたい方は、まずフジスタッフにご登録ください。下記ボタンより進み、
ご都合のよい場所と日時をお選びください。WEB上で登録の予約が完了します。

3分で予約完了!派遣登録のご予約はこちらから