【全体概要】
エクセルには便利な論理関数が多数あります。「AND」「OR」「NOT」「XOR」はご存知でしょうか?論理の代表的な関数であるIFと相性の良い関数です。「AND」や「OR」のワードを見て、学生の頃に習った「集合」を思い出す方もいるかもしれません。(エクセル関数IFについては、別記事で記載しています、ご確認ください)
「集合」について少し振り返りながら、論理関数AND/OR/NOT/XORの使い方を解説します。
読んでいただくことで次のことが理解できると思います。
・AND/OR/NOT/XORの意味
・エクセル関数AND/OR/NOT/XORの使い方
少しややこしいですが、これらの関数は”数値”ではなく”領域”を表現していますので、領域を意識して読んでいただければと思います。
AND/OR/NOT/XORについて知っておきたいこと
論理関数を用いる目的の一つに「IF」、「SUMIF」、「COUNTIF」などとセットで用いて条件式(ネスト)部分をいかに簡潔に表現するかが挙げられると思います。実際、関数ANDに関して検索してみるとIFとセットで紹介されているページがほとんどです。
例えば、
〈変更前〉IF(セルA>1, IF(セルB<2,“〇”,”×”),”×”)
〈変更後〉IF(AND(セルA>1, セルB<2), “〇”,”×”)
こんなイメージだと思いますが、理解しておかないといけない疑問点があります。
●AND/OR/NOT/XORは何を出力しているのか?
●AND/OR/NOT/XORはどんな処理をしているのか?
●AND/OR/NOT/XORは何を入力しているのか?
こういった疑問点に対して、3つのポイントを解説します。
1.AND/OR/NOT/XORの出力
2.集合を踏まえたAND/OR/NOT/XORの意味と処理
3.関数AND/OR/NOT/XORの入力
理解していただければ、複雑な条件を簡潔化してIFなどとセットで活用できると思います。
【参考】その他条件分岐エクセル関数の記事:
「LOOKUP」→こちら / 「SWITCH」→こちら / 「IFS」→こちら
是非ご一読ください。
AND・OR・NOT・XORの使い方
AND/OR/NOT/XORの出力
出力に関しては、「TRUE」「FALSE」のいずれかとなります。関数の引数内にある論理式が真の場合は「TRUE」、偽の場合は「FALSE」が出力されます。
例えば、「10」という数値に対して以下条件A及びBを各関数の論理式に反映します。
(条件A)5以上であるか
(条件B)15以下であるか
AND=TRUE、OR=TRUE、XOR=FALSEと出力されます。(NOTは論理式が1つしかもてないので、この事例としては除外しています)
「TRUE」か「FALSE」の二値を出力しますので、IFなど引数として論理式が入る関数と相性がよいといえそうです。
集合を踏まえたAND/OR/NOT/XORの意味と処理
これらの関数はどういった意味があるのでしょうか?習ったことがあるかもしれませんが、「集合」で考えると理解しやすいと思います。それぞれの領域に該当した場合TRUE、該当しない場合はFALSEとなります。
AND | 論理積 |
OR | 論理和 |
NOT | 否定 |
XOR | 排他的論理和 |
これだけだと意味がよくわかりませんので、具体的に絵で考えてみます。
AND
ANDを絵で考えてみると下図1のようになり、領域は青色横線の部分となります。二つの条件の重なり合った部分と言えそうです。事例で出した「10」は確かに領域内に入っています。
OR
ORは下図2のようになります。二つの条件のいずれかの部分と言えそうです。事例で出した「10」は領域内に入っています。
XOR
XORは下図3のようになります。二つの条件の重なり合った部分を除くいずれかと言えそうです。事例で出した「10」は領域内に入っていません。
NOT
NOTは下図4のようになります。条件を除いた部分と言えそうです。
このように絵で領域を考えると各関数の意味がわかります。各領域に該当した場合TRUE、該当しない場合はFALSEを返す処理を実行しています。
(ちょっとした追加)NANDとNOR
ここまでせっかく、集合をベースに考えましたのでちょっとした追加で覚えておくと便利な内容をご紹介しておきます。
NAND:否定論理積→ NOT(AND())
NOR:否定論理和→NOT(OR())
ANDとORの頭にNOTをつけるかたちです。何かご活用の機会があれば是非参考にしてみてください。
関数AND/OR/NOT/XORの入力
ここまで理解できれば、あとは各関数の引数の論理式がいくつ入るのかを認識しておけば使いこなせると思います。
AND
AND( 論理式1, 論理式2, 論理式3, ・・・) ※255個の論理式入力可
OR
OR( 論理式1, 論理式2, 論理式3, ・・・) ※255個の論理式入力可
XOR
XOR( 論理式1, 論理式2, 論理式3, ・・・) ※254個の論理式入力可
NOT
NOT(論理式)
おまけ(記載方法)
ANDとORについては、論理式として別の記載方法があります。
AND( 論理式1, 論理式2, 論理式3, ・・・)
→(論理式1)*(論理式2)*(論理式3)*・・・
論理積だからかもしれませんが、「*」を用いて記載できます。
OR( 論理式1, 論理式2, 論理式3, ・・・)
→(論理式1)+(論理式2)+(論理式3)+・・・
論理和だからかもしれませんが、「+」を用いて記載できます。
と表現もできますが、関数を用いた方がわかりやすいですよね。
まとめ
エクセル関数AND/OR/NOT/XORの意味と使い方を説明しました。
出力されてくるのは「TRUE」「FALSE」の二値で、この点がIFなどの関数と組み合わせて用いやすい点です。各関数は領域を表しており該当する領域であれば「TRUE」、該当しない領域であれば「FALSE」が返されます。領域については集合で習った概念で考えることができます。エクセルで使用する場合には、各関数名の引数として論理式をあてはめていくことになります。
うまく領域展開させて、望みの結果が得られるように関数を活用することが大切です。
当ブログでは実際の仕事での経験を通して、役立つノウハウの蓄積を図っています。お時間があれば以下のリンクより、色々な記事を読んでいただければと思います。
ここまで読んでいただき、ありがとうございました。
コメント