Excelでは、ブール論理(真か偽かのどちらかになる単純な条件を表す、お洒落な名前)は、大規模なスプレッドシートから特定のデータや結果をふるいにかける方法の一つです。もちろん、スプレッドシートを検索する方法は他にもあり、ルックアップ関数やピボットテーブルなども利用できます。ブール論理を深く学ぶべき理由は、検索エンジンやデータベースなど、他のアプリケーションでも活用できるからです。
Excelでは論理関数と呼ばれるブール演算子には、AND、OR、NOT、そして新しいXOR関数があります。これらの演算子は、データベース、スプレッドシート、検索エンジンなど、特定の情報を探しているあらゆる状況で、検索語句の間に使用して、結果を絞り込んだり、拡張したり、除外したりするために使われます。ここでは、これら4つの演算子について詳しく説明します。
ブール値の基礎
各演算子の最も単純な定義は次のとおりです。
AND – 指定された条件がすべて真の場合、TRUEを返します
例: =AND (100<200, 200>100) 両方の条件が真なのでTRUE
OR – 指定された条件の少なくとも1つが真の場合、TRUEを返します。
例: =OR(100<200, 100>300) 条件の1つが真なのでTRUE
NOT – 指定された条件が満たされない場合に true を返します(逆ロジック)
例: =NOT(100>500) 100は500より大きくないのでTRUE
XOR – 排他的論理和とも呼ばれ、どちらかの引数(両方ではない)が真の場合に真を返します。
例: =XOR(1+1=2, 2-1=2) は、1つの条件が真でもう1つが偽なので、TRUE を返します。
=XOR(1+1=2, 2-1=1)は両方の条件が真なのでFALSEを返します。
=XOR(5+1=2, 5-1=2)は、両方の条件が偽であるため、FALSEを返します。
さらに注意すべき点がいくつかあります。
- ブール演算子を使用して結果の範囲を検索する場合は、何より大きいか、または何より小さいかによって範囲を定義します。
- Excel 2013 では、数式が 8,192 文字を超えない場合に限り、1 つの論理関数で最大 255 個の引数を使用できます。

01 ブール論理演算子の定義
ブール演算子は一見シンプルに見えますが、IFステートメントなどの他の関数と組み合わせることで、非常に強力な結果を生み出す複雑な数式を作成できます。
複数の条件を満たすものを探している場合、AND 演算子が役立ちます。例えば、「ジョージの劇に出演する俳優の1人が足を骨折したため、ジョージは非常に特殊なスキルと容姿を持つ別の俳優を緊急に必要としています。衣装に合うように、新しい俳優は身長68~69インチ(約190~195cm)、体重180~200ポンド(約83~90kg)、年齢30~50歳である必要があります。」などです。
ジョージの俳優リストに50人から100人しか名前が載っていなければ、リスト全体をざっと見て自分で代わりの俳優を探すことができます。しかし、ギルド俳優データベースには2万件のレコードが含まれているため、検索範囲を絞り込むにはより高速な方法が必要です。
このクエリには、以下の3つの数式のいずれかを使用できます。3つの数式はすべて機能し、ANDステートメントはTrueまたはFalseのみを返す点を除けば、すべて似ています。IFステートメントでは、「一致」や「適格」などのカスタム応答を指定できます。
図 02 に示すデータベースと数式をコピーし、結果を試してみましょう。
A. ANDブール演算子 (3 つの条件) を使用した ANDステートメント: true または false を返します。
=AND(AND(C6>67,C6<70),AND(D6>179,D6<201),AND(E6>29,E6<51)) = TRUE
B. AND ブール演算子を使用したIF/AND ステートメント(条件 3 つ): IF ステートメントは「これ、これ、そしてこれが true の場合、Yes と答え、そうでない場合は No と答えます」と述べているため、Yes または No を返します。
=IF(AND(AND(C8>67,C8<70),AND(D8>179,D8<201),AND(E8>29,E8<51)),”はい”,”いいえ”)
C. AND ブール演算子を使用したIF ステートメント(条件が 3 つ) : Yes または No を返します。
この場合、ANDステートメントのいずれかが満たされない場合、応答はFalseを返し、乗算(アスタリスク)の結果は0(False)になります。この形式は、構文にエラーがあり、Excelが(サポートが必要かどうか尋ねた後に)それを修復したときによく表示されます。
=IF(AND(C10>67,C10<70)*AND(D10>179,D10<201)*AND(E10>29,E10<51),”はい”,”いいえ”)
注: 数式内の各条件の構文を理解しやすくするために、Excel では、開き括弧と閉じ括弧を含め、対応するセルの数式が色分けされていることに注意してください。

0 2 AND、IF/AND、IF ステートメントを使用する数式。
ブールOR、AND-OR
最初のデータベース検索では1100人の俳優が返されました。ジョージはさらに結果を絞り込みたいと考え、1100件の結果に対して2つの非常に具体的なスキルを検索しました。その俳優はイタリア語またはフランス語を流暢に話せ、かつテノールまたはバスの声域を持っている必要があります。
このクエリには次の数式を使用します。
=OR(OR(C9=”イタリア語”,C9=”フランス語”),AND(OR(D9=”テノール”,D9=”ベース”))) = TRUE
覚えておいてください、答えが真実であるためには、俳優はイタリア語またはフランス語を話し、テノールまたはバスで歌う必要があります。
不正確な情報は FALSE 応答を生成します。
図03に示されているデータベースと数式をコピーして、結果を試してみてください。ここでも、Excelが数式の各条件の構文を理解しやすくするために、開始括弧と終了括弧を含め、対応するセルの数式を色分けしていることに注目してください。

03 OR、AND-OR演算子を使用する数式
ブールNOT、NOT-OR
NOT演算子を説明する最も簡単な方法は、インターネット検索に例えることです。昔からの友人であるジャック・ラッセルの名前を入力するだけでインターネットで検索すると、犬や子犬の検索結果も何百件もヒットします。NOT演算子を使えば、「ジャック・ラッセル NOT 犬 NOT 子犬」と検索して、犬という変数を除外できます。
ジョージは、ダンスと様々な楽器の演奏をバックパフォーマーに頼む必要がある。しかし、ピアノは不要だ。ピアニストは踊り回れないからだ。社交ダンスも不要だ。人間ではなく、楽器と踊ってほしいからだ。ジョージはデータベースに再度クエリを実行し、「ピアノではなく、社交ダンスでもない」と指定する。
これは逆の論理なので、「ピアノではない」かつ「社交ダンスではない」は偽(FALSE)となります。なぜなら、彼は社交ダンスもピアノも望んでいないからです。偽(FALSE)は「いいえ、この人は違います」という意味だと考えてください。また、レコード3(Feyd-Rautha)にはギターと社交ダンスと書かれていることにも注目してください。ギターは良いですが、社交ダンスは良くないので、ジョージは社交ダンスを望まないため(ギターは良いのですが)、回答は偽(FALSE)となります。レコード4(Piter De Vries)でも同様で、ピアノとワルツが挙げられます。どちらか一方しか受け入れられず、両方が受け入れられないため、両方とも拒否されます。
このクエリに次の数式を使用し、図 04 に示すデータベースをコピーして、結果を試してください。
=NOT(OR(C5=”ピアノ”, D5=”社交ダンス”))

04 NOT、NOT-OR演算子を使った数式
XOR(排他的論理和)について
ブール論理はもうお手の物だと思っていた矢先、Excel 2013で新しい演算子XOR(排他的論理和)が導入されました。NOTの逆の演算子と考えてください。一方の条件が真でもう一方の条件が偽の場合、XORはTRUEを返します。両方の条件が真、または両方の条件が偽の場合、XORはFALSEを返します。
このクエリに次の数式を使用し、図 05 に示すデータベースをコピーして、結果を試してください。
=XOR(C5=”ピアノ”, D5=”社交ダンス”)

05 XOR演算子を使用する式
ブール演算子に慣れれば、膨大なセルの中から特定のレコードを見つけるための新しいスキルを身につけることができます。さらに、ブール論理を使ってインターネット検索やデータベース検索などを絞り込むことも可能です。