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