AND・OR・NOT関数の使い方|複数条件の論理判定
AND関数、OR関数、NOT関数は、複数の条件を組み合わせて論理判定を行うExcelの基本関数です。IF関数と組み合わせることで「AかつB」「AまたはB」「Aではない」といった複合的な条件分岐を実現できます。
この記事では、3つの論理関数の使い方と、実務での組み合わせパターンを解説します。
各関数の基本構文
AND関数
=AND(論理式1, [論理式2], ...)
すべての条件がTRUEの場合にTRUEを返します。ひとつでもFALSEがあればFALSEを返します。
OR関数
=OR(論理式1, [論理式2], ...)
いずれかの条件がTRUEの場合にTRUEを返します。すべてFALSEの場合のみFALSEを返します。
NOT関数
=NOT(論理式)
論理式の結果を反転します。TRUEをFALSEに、FALSEをTRUEに変換します。
引数の説明
| 引数 | 説明 | 必須/任意 |
|---|---|---|
| 論理式1 | 判定する条件(AND・OR共通) | 必須 |
| 論理式2以降 | 追加の条件。最大255個(AND・OR共通) | 任意 |
| 論理式 | 反転する条件(NOT関数) | 必須 |
AND関数・OR関数・NOT関数の動作比較
| 条件A | 条件B | AND(A, B) | OR(A, B) | NOT(A) |
|---|---|---|---|---|
| TRUE | TRUE | TRUE | TRUE | FALSE |
| TRUE | FALSE | FALSE | TRUE | FALSE |
| FALSE | TRUE | FALSE | TRUE | TRUE |
| FALSE | FALSE | FALSE | FALSE | TRUE |
実践例1:AND関数 - 両方の条件を満たす判定
国語と数学の両方が70点以上の場合に「合格」と判定します。
=IF(AND(B2>=70, C2>=70), "合格", "不合格")
AND関数単体ではTRUEまたはFALSEしか返さないため、IF関数と組み合わせて使うのが一般的です。
3科目以上の場合も同様に条件を追加できます。
=IF(AND(B2>=70, C2>=70, D2>=70), "合格", "不合格")
実践例2:OR関数 - いずれかの条件を満たす判定
いずれかの科目で90点以上の場合に「優秀科目あり」と表示します。
=IF(OR(B2>=90, C2>=90, D2>=90), "優秀科目あり", "")
3つの科目のうち1つでも90点以上があれば「優秀科目あり」が表示されます。
実践例3:NOT関数 - 条件の否定
特定の条件に該当しないデータを抽出する場面でNOT関数が便利です。
ステータスが「完了」ではないタスクを判定します。
=IF(NOT(C2="完了"), "対応必要", "")
この例はIF関数だけでも書けますが、NOT関数を使うことで「完了ではない」という意図が明確になります。
# NOT関数を使わない場合
=IF(C2<>"完了", "対応必要", "")
実践例4:AND・ORの組み合わせ
「A部署かつ勤続年数5年以上」または「B部署かつ勤続年数3年以上」の社員を判定する複合条件です。
=IF(OR(AND(B2="A部署", C2>=5), AND(B2="B部署", C2>=3)), "対象", "対象外")
ORの中にANDをネストすることで、複数のAND条件をOR接続しています。このように組み合わせることで、複雑な業務ルールを数式化できます。
実践例5:NOT関数とISBLANK関数の組み合わせ
セルが空白でないことを確認する定番パターンです。
=IF(NOT(ISBLANK(A2)), "入力済", "未入力")
データの入力状況をチェックする際に使えます。AND関数と組み合わせて、複数セルの入力チェックも可能です。
=IF(AND(NOT(ISBLANK(A2)), NOT(ISBLANK(B2)), NOT(ISBLANK(C2))), "全項目入力済", "未入力あり")
条件付き書式での活用
AND関数やOR関数は、条件付き書式のルールでも活用できます。
たとえば、売上が目標以上かつ経費が予算以下の行を緑色にするには、条件付き書式のルールに以下の数式を設定します。
=AND(C2>=B2, E2<=D2)
複数条件に基づく視覚的なフィードバックが、データの確認作業を効率化します。
よくあるエラーと対処法
TRUE/FALSEが表示されてしまう
AND関数やOR関数を単体で使うと、TRUEまたはFALSEが表示されます。文字列や数値を返したい場合は、IF関数と組み合わせてください。
# TRUE/FALSEが表示される
=AND(B2>=70, C2>=70)
# 文字列で表示する
=IF(AND(B2>=70, C2>=70), "合格", "不合格")
条件の論理が意図と異なる
AND関数とOR関数を取り違えるミスがよくあります。「すべて満たす」場合はAND、「いずれか満たす」場合はORです。
日本語で条件を整理してから数式に変換すると、ミスを防げます。
- 「国語も数学も70点以上」→ AND
- 「国語か数学が70点以上」→ OR
数値0と空白の扱い
AND関数やOR関数では、数値の0はFALSE、0以外の数値はTRUEとして評価されます。空白セルも0(FALSE)として扱われるため、予期しない結果になることがあります。明示的に比較演算子を使って条件を記述してください。
# 意図しない動作の可能性がある
=AND(A2, B2)
# 明示的に条件を記述
=AND(A2>0, B2>0)
Google スプレッドシートでの互換性
AND関数、OR関数、NOT関数はGoogle スプレッドシートでも同じ構文で利用できます。動作も完全に同一です。
まとめ
AND・OR・NOT関数は、複合条件を扱うための基本的な論理関数です。
- AND関数はすべての条件がTRUEの場合にTRUEを返す
- OR関数はいずれかの条件がTRUEの場合にTRUEを返す
- NOT関数は論理値を反転する
- IF関数と組み合わせて実用的な条件分岐を作る
- 条件付き書式でも活用できる
これらの関数を使いこなすことで、業務上の複雑な判定ルールをExcelの数式で表現できるようになります。