複数の条件式をまとめて判定する
EXCEL関数の中では、様々な条件判定のために”条件式”をよく利用すると思います。
条件式は、「○ならば☓」みたいにシンプルなものであれば問題ないですが、「○か△なら☓」「○かつ△なら■」みたいに、複数の条件をあわせて使う場合も多く出てきます。
今回は、そんな複数の条件式をまとめて判定する”AND関数”と”OR関数”を紹介します。
この関数を使うことで、数式を”スッキリ”と”分りやすく”書くことが出来るようになります(^o^)
AND関数
- 論理式…TRUE・FALSEの結果を返す条件式を指定します。
AND関数では、指定された論理式が、”全てTRUEの場合”にTRUEを返します。1つでもFALSEがある場合は、FALSEが返されます。
ちなみに、論理式は255個まで指定可能です。
AND関数サンプル
やってみましょう。
次のようなシートを用意しました。名前と性別年齢のリストです。
D列にAND関数を使って複数条件を一括で判定します。
50歳以上の男性のD列に「○」を表示させる数式を考えてみます。
まずは、D2セルに次の数式を入力します。
=AND( B2=”男”, C2>=50 )
1つ目の条件は、B列が”男”なことなので、「B2=”男”」
2つ目の条件は、C列が”50歳以上”なので、「C2>=50」
をカンマで繋げて指定します。
Enterで確定します。
D2セルには、”FALSE”が表示されました。このように、AND関数では指定した全ての条件がTRUEにならないとFALSEが表示されます。全てTRUEになるとTRUEが表示されます。
「池田 みあ」さんの場合は指定した条件がいずれもFALSEですね。
D8セルまで数式をコピーします。
条件に該当する、「秋葉 栄一」さんと「佐竹 弘也」さん、「荒木 光洋」さん、「水島 守」さんがTRUEになっていることが確認出来ます。
やりたかったのは、条件に合致する人のD列に「○」をいれることでした。
先程入力した、AND関数での数式を、IF関数の”条件式”に利用します。
D2セルの数式を次のように変更します。
=IF( AND( B2=”男”, C2>=50 ), “○”, “” )
Enterで確定してD8セルまでコピーします。
これで先程の条件式が、TRUEの場合は「○」そうでない場合は空白に出来ました。
ちなみに、IF関数だけで書くと次のようになります。
=IF( B2=”男”, IF( C2>=50, “○”, “” ), “” )
まぁ、今回条件式が2つだけなので、なんとか分かりますが3つ4つ5つとなってきたらカオスですねw
AND関数を使うことで、数式がシンプルにスッキリ出来ることが分かると思います。
OR関数
- 論理式…TRUE・FALSEの結果を返す条件式を指定します。
OR関数では、指定された論理式の”いずれかがTRUEの場合”にTRUEを返します。1つでもTRUEがあれば、TRUEが返されます。全てFALSEの場合にだけFALSEが返されます。
ちなみに、論理式は255個まで指定可能です。
OR関数サンプル
先ほどと同じシートを使います。
D列にOR関数を使って複数条件を一括で判定します。
C列が「女」か、年齢が40歳以下の場合、D列に「○」を表示させる式を考えます。
まずは、D2セルに次の数式を入力します。
=OR( B2=”女”, C2<=40 )
1つ目の条件は、B列が”女”なことなので、「B2=”女”」
2つ目の条件は、C列が”40歳以下”なので、「C2<=40」
をカンマで繋げて指定します。
使い方のベースはAND関数と同じですね。
Enterで確定します。
D2セルには、”TRUE”が表示されました。このように、OR関数では指定した条件のいずれかがTRUEならば、TRUEのが表示されます。
「池田 みあ」さんの場合は指定した条件の全てがTRUEになりますね。
D8セルまで数式をコピーします。
条件に該当する、「池田 みあ」さんと「小西 恵子」さん、「上野 秀樹」さんがTRUEになっていることが確認出来ます。
やりたかったのは、条件に合致する人のD列に「○」をいれることでした。
AND関数の時と同じく、先程入力したOR関数での数式を、IF関数の”条件式”に利用します。
D2セルの数式を次のように変更します。
=IF( OR( B2=”女”, C2<=40 ), “○”, “”)
Enterで確定してD8セルまでコピーします。
これで先程の条件式が、TRUEの場合は「○」そうでない場合は空白に出来ました。
ちなみに、これもIF関数だけで書くと次のようになります。
=IF( B2=”女”, “○”, IF( C2<=40, “○”, “”))
まずB列が”女”かどうか確認して、そうなら「○」、そうでなかったらC列が40歳以上かどうか確認して、そうだったら「○」そうでなければ空白。
といった具合になりますね。
IFをネスト(入れ子)にするしかないので、分かりにくいのは一目瞭然ですね。
以上です!
コメント