1/28/2017

Excel。AND条件で合致していないはずなのに、判定結果がおかしいのでどうしたらいい?

Excel。AND条件で合致していないはずなのに、判定結果がおかしいのでどうしたらいい?

<IF+AND+ISNUMBER関数>


Excel関数を勉強している過程で、
IF関数→IF+IF関数→IF+AND関数のような流れになるかと思いますが、

次のような判定表で判定する際に、
IF+AND関数を使うケースがよく説明されているのですが、
実務実践でのケースのようにすると、判定結果がおかしい

ということが起こるので、その回避方法をご紹介したいと思います。

まずは、下記の表があります。

D列の判定には、1回目・2回目ともに60点より大きい場合には、○。
そうでなければ、空白という判定結果を算出したいとします。

1回目・2回目ともにということですから、IF+AND関数を使うと算出しやすいですね。

それでは、D2をクリックして、IF関数ダイアログボックスを表示します。

IF+AND関数の場合、真の場合と偽の場合を先に作成しておくと便利でしたね。
真の場合には、”○”
偽の場合には、””

そして、論理式には、AND関数をネストしますので、
名前ボックスの▼をクリックしてAND関数を選択して、
AND関数ダイアログボックスを表示します。

論理式1には、B2>60
論理式2には、C2>60
と入力してOKボタンをクリックします。

そして、オートフィルを使って数式をコピーしましょう。

D2の数式は、

=IF(AND(B2>60,C2>60),"○","")


これで完成。

と通常ならそれで終わるのですが、
例えば、C5の秋葉さんの2回目。

これがTRYしていなかったとします。要するに結果がない。

TRYしていないので、「-」(ハイフン)を入力してみましょう。

アレレ?D5の判定結果に○が表示されましたね。

1回目2回目ともに60点より大きいときに○なのに、
一つだけなのに○が表示されてしまいましたね。

これが、今回どうしたらいい?ということなのです。

現場実践において、このように「-」(ハイフン)にすることはありますよね。

では、どうしたらいいのでしょうか?

入力規則を使ったところで、結局「-」(ハイフン)は使いたいわけですから、
入力できないとするわけにはいきません。

かといって、空白にすれば?と考えますが、これも同じですよね。空白にはしたくない。

そこで、数値かどうかを確認する関数。

ISNUMBER関数の登場となるわけです。

では、D2の数式を次のように修正していきましょう。

論理式を追加していきます。
論理式3には、ISNUMBER(B2)
論理式4には、ISNUMBER(C2)

このISNUMBER関数は、数値だったらTRUEを返してきます。
これで、数値かどうかを判定してくれます。

修正後のD2の数式は、

=IF(AND(B2>60,C2>60,ISNUMBER(B2),ISNUMBER(C2)),"○","")


では、オートフィルで数式をコピーしましょう。

これで、「-」(ハイフン)を入力しても、
希望通りの判定結果を表示してくれるようになりましたね。