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)),"○","")
では、オートフィルで数式をコピーしましょう。
これで、「-」(ハイフン)を入力しても、
希望通りの判定結果を表示してくれるようになりましたね。