エクセル関数辞典 エクセル関数辞典

AND・OR・NOT関数の使い方|複数条件の論理判定

AND OR NOT 論理関数 Excel関数
広告スペース (article-top)

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条件BAND(A, B)OR(A, B)NOT(A)
TRUETRUETRUETRUEFALSE
TRUEFALSEFALSETRUEFALSE
FALSETRUEFALSETRUETRUE
FALSEFALSEFALSEFALSETRUE

実践例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の数式で表現できるようになります。

広告スペース (article-bottom)

あわせて読みたい