Excel中級者

ExcelのAND関数・OR関数・NOT関数の使い方|IF関数との組み合わせで複数条件を判定

しんたろ。

ExcelのAND関数・OR関数・NOT関数は、複数の条件を組み合わせるための論理関数です。IF関数と組み合わせることで「AかつB」「AまたはB」「Aでない」といった条件分岐が実現でき、業務の自動化に欠かせないスキルです。

たとえば「国語が70点以上かつ数学が70点以上なら合格」という判定や、「在庫が0または期限切れなら発注」といった処理も、AND・OR関数を使えば1つの数式でスッキリ書けます。

本記事では、AND・OR・NOT関数の基本的な使い方からIF関数との組み合わせ、実務で使える応用例まで、図解付きで丁寧に解説します。

この記事でわかること
  • AND関数の使い方(AかつBの条件判定)
  • OR関数の使い方(AまたはBの条件判定)
  • NOT関数の使い方(条件の否定)
  • IF関数との組み合わせで複数条件の分岐処理
  • 実務で使える具体例(成績判定・合否判定・在庫管理など)
この操作、VBAで一瞬で自動化できます
まずは関数の使い方を解説し、最後にVBA自動化コードも紹介します
‘ 複合条件で合否を自動判定するマクロ
Sub 複合条件判定()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim i As Long
    For i = 2 To 6
        Dim score1 As Long, score2 As Long
        score1 = ws.Cells(i, “B”).Value
        score2 = ws.Cells(i, “C”).Value
        If score1 >= 70 And score2 >= 70 Then
            ws.Cells(i, “D”).Value = “合格”
        ElseIf score1 >= 90 Or score2 >= 90 Then
            ws.Cells(i, “D”).Value = “条件付合格”
        Else
            ws.Cells(i, “D”).Value = “不合格”
        End If
    Next i
End Sub
下のデモで実行結果を確認できます
📊 試験結果.xlsx – Excel
ABCD
1 名前筆記実技判定
2 田中8578 合格
3 鈴木9255 条件付合格
4 佐藤6065 不合格
5 山田7588 合格
6 高橋5095 条件付合格
準備完了 100%
5件の試験結果にAND/OR条件で合否が自動判定されました!
☝ 条件の組み合わせを変更すれば柔軟な判定ロジックを構築できます

AND関数の使い方(AかつBを判定)

AND関数は、指定したすべての条件が成立している(TRUE)かどうかを判定する関数です。「条件1かつ条件2を満たすとき」という絞り込みに使います。

AND・OR・NOT関数のベン図(積集合・和集合・補集合)
AND・OR・NOT関数の論理演算ベン図

AND関数の基本構文

AND関数の構文は次のとおりです。

AND関数の構文
=AND(論理式1, 論理式2, …)
  • 論理式1:1つ目の条件(例:A2>=70)
  • 論理式2:2つ目の条件(例:B2>=70)
  • すべての条件が成立すれば TRUE、1つでも不成立なら FALSE を返す
  • 論理式は最大255個まで指定可能

例として、国語の点数がA列、数学の点数がB列に入力されているとき、両方70点以上かどうかを確認する数式は次のようになります。

=AND(A2>=70, B2>=70)

国語が80点・数学が75点であれば両方の条件を満たすため TRUE が返ります。国語が65点・数学が80点の場合は条件1が不成立なので FALSE が返ります。

ポイント

AND関数単体では TRUE / FALSE しか返しません。「合格」「不合格」などの文字列を表示させたい場合は、次に解説する IF関数と組み合わせる 必要があります。

IF関数とANDの組み合わせ

実務では AND関数を IF関数の条件(第1引数)に入れて使うのが定番です。「すべての条件を満たすなら〇〇、そうでなければ××」という分岐処理ができます。

IF+AND の構文
=IF(AND(条件1, 条件2), 真の場合, 偽の場合)

具体例を見てみましょう。「国語70点以上かつ数学70点以上なら合格、そうでなければ不合格」を判定する数式です。

=IF(AND(A2>=70, B2>=70), "合格", "不合格")

この数式の動きを確認します。

  1. AND(A2>=70, B2>=70) で2つの条件をまとめて判定
  2. AND がTRUEなら(両方70点以上)→「合格」を表示
  3. AND がFALSEなら(どちらか一方でも70点未満)→「不合格」を表示

売上管理の例も見てみましょう。C列が売上金額、D列が訪問件数のとき、「売上100万以上かつ訪問10件以上なら優良顧客」と判定する数式は次のようになります。

=IF(AND(C2>=1000000, D2>=10), "優良顧客", "通常")

3つ以上の条件を指定する

AND関数は3つ以上の条件も指定できます(最大255個)。条件が増えても書き方は同じで、カンマで区切って追加するだけです。

例:「国語70点以上 かつ 数学70点以上 かつ 英語70点以上なら全科目合格」

=IF(AND(A2>=70, B2>=70, C2>=70), "全科目合格", "要再試験")

条件が増えるほど厳しい絞り込みになります。「すべての条件を満たしたときだけ○○する」という場面でAND関数は活躍します。

メリット:AND関数をまとめる理由

AND関数を使わずに複数条件をIFだけで書こうとすると、=IF(A2>=70, IF(B2>=70, IF(C2>=70, “合格”, “不合格”), “不合格”), “不合格”) のようにネストが深くなります。AND関数を使えば1か所にまとまり、数式が読みやすくなります。

OR関数の使い方(AまたはBを判定)

OR関数は、指定した条件のうち少なくとも1つが成立している(TRUE)かどうかを判定する関数です。「条件1または条件2を満たすとき」という幅広い拾い上げに使います。

OR関数の基本構文

OR関数の構文
=OR(論理式1, 論理式2, …)
  • 論理式1:1つ目の条件(例:A2=”東京”)
  • 論理式2:2つ目の条件(例:A2=”大阪”)
  • いずれか1つでも成立すれば TRUE、すべて不成立なら FALSE を返す
  • 論理式は最大255個まで指定可能

例として、A列に都市名が入っているとき、東京か大阪かを判定する数式は次のとおりです。

=OR(A2="東京", A2="大阪")

A2が「東京」または「大阪」であれば TRUE、それ以外(例:名古屋、福岡など)であれば FALSE が返ります。

IF関数とORの組み合わせ

AND関数と同様に、OR関数も IF関数の第1引数に入れて使うのが基本です。「いずれかの条件を満たすなら〇〇、どれも満たさなければ××」という分岐ができます。

IF+OR の構文
=IF(OR(条件1, 条件2), 真の場合, 偽の場合)

具体例です。「国語か数学のどちらか一方でも90点以上なら特待生候補」と判定します。

=IF(OR(A2>=90, B2>=90), "特待生候補", "一般")

在庫管理の例も紹介します。B列が在庫数、C列が有効期限(日付)のとき、「在庫が0または期限が今日以前なら発注要」と判定する数式です。

=IF(OR(B2=0, C2<=TODAY()), "発注要", "在庫あり")

このように OR関数は「どれかに当てはまるものをすべて拾いたい」場面で非常に便利です。

ANDとORの違いをひと言で
  • AND:全員が手を挙げたら TRUE(全条件クリア)
  • OR:誰か1人でも手を挙げたら TRUE(1つでもクリア)

NOT関数の使い方(条件の否定)

NOT関数は、条件の結果を反転させる関数です。TRUE を FALSE に、FALSE を TRUE に変換します。「〇〇でない場合」という否定の条件を作るときに使います。

NOT関数の基本構文

NOT関数の構文
=NOT(論理式)
  • 論理式:反転させたい条件(例:A2=”完了”)
  • 論理式が TRUE なら FALSE、FALSE なら TRUE を返す
  • 引数は1つのみ(ANDやORと異なり複数指定不可)

例として、A列のステータスが「完了」でないかどうかを確認します。

=NOT(A2="完了")

A2が「完了」のとき FALSE(=「完了でない」は偽)、「未対応」や「処理中」のとき TRUE(=「完了でない」は真)が返ります。

IF関数とNOTの組み合わせ

NOT関数も IF関数の第1引数に組み込んで使います。「〇〇でないとき」という条件分岐が簡潔に書けます。

IF+NOT の構文
=IF(NOT(条件), 真の場合, 偽の場合)

具体例です。「ステータスが完了でなければ対応が必要」とフラグを立てる数式です。

=IF(NOT(A2="完了"), "対応要", "")

NOT関数は「=<>(等しくない)」という比較演算子でも代替できます。上の数式は =IF(A2<>”完了”, “対応要”, “”) と同じ結果になります。ただし、ANDやORと組み合わせる場合は NOT関数の形で書くほうが読みやすくなります。

ポイント:NOT関数の使いどころ
  • 単純な否定なら <> 演算子で十分なことが多い
  • AND(NOT(…), 別条件) のように組み合わせる場合に NOT関数が威力を発揮する
  • 条件式の意図を明確に示したいときにも有効

AND・OR・NOTを組み合わせた複合条件

AND・OR・NOT は単独でも使えますが、組み合わせることでより柔軟な条件式を作れます。ここでは実務でよく使われるパターンを解説します。

ANDとORのネスト例

「(条件AかつB) または 条件C」のような複合条件は、ANDとORを入れ子にして書きます。

例:「(国語80点以上かつ数学80点以上)または 英語が90点以上なら特進クラス」

=IF(OR(AND(A2>=80, B2>=80), C2>=90), "特進クラス", "普通クラス")

逆に「条件AかつB、ただしCでない」という組み合わせも作れます。

例:「売上100万以上かつ新規顧客、ただしキャンペーン適用済でない場合はボーナス対象」

=IF(AND(C2>=1000000, D2="新規", NOT(E2="適用済")), "ボーナス対象", "-")
ポイント:組み合わせ時のカッコの対応に注意

AND・OR・NOTを入れ子にする場合、カッコの対応がずれるとエラーになります。数式バーで色分けされるカッコを目安に確認しましょう。数式を入力する前に日本語で「(A かつ B)または C」と条件を整理してから書くと、ミスが減ります。

実務例:成績評価(80点以上かつ出席率90%以上→A)

AND・OR・NOTを組み合わせた実務的な成績評価の例を紹介します。A列に点数、B列に出席率が入力されているとします。

評価基準を次のように設定します。

  • A評価:80点以上 かつ 出席率90%以上
  • B評価:70点以上 かつ 出席率80%以上(A評価を除く)
  • C評価:それ以外

IFS関数を使って書くと次のようになります。

=IFS(AND(A2>=80, B2>=0.9), "A", AND(A2>=70, B2>=0.8), "B", TRUE, "C")

IF関数のネストで書く場合は次のとおりです。

=IF(AND(A2>=80, B2>=0.9), "A", IF(AND(A2>=70, B2>=0.8), "B", "C"))

このようにAND関数を使うことで、複数条件をまとめて判定し、評価をわかりやすく整理できます。出席率が低い場合はどんなに点数が高くてもA評価にならないため、AND関数による厳格な絞り込みが適しています。

COUNTIFS・SUMIFSとAND関数の使い分け

「複数条件でデータを扱う」といえば COUNTIFS・SUMIFS も定番です。AND関数とどう使い分ければよいか、整理しておきましょう。

AND関数 vs COUNTIFS/SUMIFS
  • AND関数 + IF:1行1行の判定結果(ラベル・フラグ)を返す。「この行は合格か?」を判定したいときに使う
  • COUNTIFS:複数条件を満たすセルの個数を集計する。「合格者は何人?」を集計したいときに使う
  • SUMIFS:複数条件を満たすセルの合計値を集計する。「合格者の点数合計は?」を集計したいときに使う

一行ずつにフラグや評価を付けたいなら AND関数+IF、データ全体を集計したいなら COUNTIFS・SUMIFS を選びましょう。

【Excel】COUNTIFS関数の使い方!複数条件でカウントする方法を徹底解説
【Excel】COUNTIFS関数の使い方!複数条件でカウントする方法を徹底解説

AND/OR/NOT関数をVBAで自動化する方法

AND・OR関数の複合条件判定をVBAのIf文で自動化すれば、柔軟な判定ロジックを構築できます。

' 複合条件で合否を自動判定するマクロ
Sub 複合条件判定()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim i As Long
    For i = 2 To 6
        Dim score1 As Long, score2 As Long
        score1 = ws.Cells(i, "B").Value
        score2 = ws.Cells(i, "C").Value
        If score1 >= 70 And score2 >= 70 Then
            ws.Cells(i, "D").Value = "合格"
        ElseIf score1 >= 90 Or score2 >= 90 Then
            ws.Cells(i, "D").Value = "条件付合格"
        Else
            ws.Cells(i, "D").Value = "不合格"
        End If
    Next i
End Sub

VBAマクロの実行結果は記事冒頭のインタラクティブデモで確認できます。ボタンを押すとアニメーションで動作をシミュレーションします。

よくある質問(FAQ)

Q. AND関数で3つ以上の条件は指定できますか?

はい、指定できます。AND関数・OR関数ともに最大255個の論理式を指定可能です。条件をカンマで区切って追加するだけです。ただし条件が多くなると数式が長くなり読みにくくなるため、補助列を使って条件を分割するか、名前付き範囲やLET関数で整理することをおすすめします。

Q. ANDとORの違いをわかりやすく教えてください

最もわかりやすい例えは「テスト合格」です。

  • AND:「国語も数学もどちらも合格して初めて進級」→ 全科目クリアが必須
  • OR:「国語か数学のどちらか一方でも合格すれば補講免除」→ 1つクリアすればOK

AND は条件を厳しくする(絞り込む)、OR は条件を緩くする(広げる)と覚えておくと迷いにくいです。

Q. COUNTIFS・SUMIFSとAND関数はどう使い分ければよいですか?

使い分けのポイントは「1行ごとの判定全体の集計か」です。

各行に「合格/不合格」などのラベルを付けたい場合は AND関数+IF を使います。「何人が合格したか」「合計売上はいくらか」を求めるなら COUNTIFS・SUMIFS が適しています。両方を組み合わせて、先に AND+IF で判定列を作り、その列を COUNTIF で集計する方法もよく使われます。

Q. IFS関数とIF+ANDの違いは何ですか?

IFS関数は「複数の条件を順番にチェックして最初に一致したものを返す」関数で、IF関数を何重にも入れ子にする代わりに使えます。

  • IF+AND:1つの条件セット(複数の条件すべてを満たす)に対して真偽を判定するのが得意
  • IFS:A評価・B評価・C評価のように複数の評価基準を順に確認するのが得意

実際には IFS の各条件に AND を組み込む(=IFS(AND(…), “A”, AND(…), “B”, TRUE, “C”))というパターンも多く使われます。IFS はExcel 2019以降・Microsoft 365で使用可能です。

Q. Googleスプレッドシートでもand・OR関数は使えますか?

はい、Googleスプレッドシートでも AND・OR・NOT関数はまったく同じ構文で使えます。=AND(A2>=70, B2>=70) のように書けばExcelと同じ結果が得られます。IFS関数も同様にスプレッドシートで使用可能です。クラウド環境でも同じ知識をそのまま活用できます。

💻 操作を体験してみよう!

実際の操作手順をクリックして体験できます。各ステップをクリックしてみましょう。

X
成績判定.xlsx
D2
← 生徒をクリックして選択 =IF(AND(B2>=70,C2>=70),”合格”,”不合格”) =IF(AND(B3>=70,C3>=70),”合格”,”不合格”) =IF(AND(B4>=70,C4>=70),”合格”,”不合格”) =IF(AND(B5>=70,C5>=70),”合格”,”不合格”) =IF(AND(B6>=70,C6>=70),”合格”,”不合格”)
A B C D E F
1 名前 国語 数学 AND判定 OR判定 NOT判定
2 85 78 合格 不合格 合格 不合格 不合格 補欠 補欠 補欠 補欠 対象外 欠席なし 欠席あり 欠席なし 欠席なし 欠席あり
3 55 82
4 92 88
5 75 60
6 45 50
田中(国語85, 数学78)
AND: 両方70以上 → TRUE → 「合格」
OR: どちらか70以上 → TRUE → 「補欠」
NOT: NOT(欠席=FALSE) → 欠席なし
⚠️ 佐藤(国語55, 数学82)
AND: 国語が70未満 → FALSE → 「不合格」(両方満たさないとNG)
OR: 数学が70以上 → TRUE → 「補欠」(どちらかでOK)
NOT: NOT(欠席=TRUE) → 欠席あり
鈴木(国語92, 数学88)
AND: 両方70以上 → TRUE → 「合格」
OR: どちらも70以上 → TRUE → 「補欠」
NOT: NOT(欠席=FALSE) → 欠席なし
⚠️ 高橋(国語75, 数学60)
AND: 数学が70未満 → FALSE → 「不合格」
OR: 国語が70以上 → TRUE → 「補欠」(ORは1つでもTRUEならOK)
NOT: NOT(欠席=FALSE) → 欠席なし
山田(国語45, 数学50)
AND: 両方70未満 → FALSE → 「不合格」
OR: どちらも70未満 → FALSE → 「対象外」(ORでも全てFALSEならNG)
NOT: NOT(欠席=TRUE) → 欠席あり
▶ A列の名前をクリックして判定結果を確認! 条件: 国語・数学がそれぞれ70点以上かどうかでAND/OR/NOTの判定結果が変わります。
1 AND: 全ての条件がTRUE → TRUE(かつ)
2 OR: いずれかの条件がTRUE → TRUE(または)
3 NOT: 条件の結果を反転(TRUE↔FALSE)
4 IF関数と組み合わせて条件分岐に活用

まとめ

ExcelのAND・OR・NOT関数について解説しました。それぞれのポイントを振り返ります。

AND・OR・NOT関数のまとめ
  • AND関数:すべての条件が成立するとTRUE。=AND(条件1, 条件2, …) で「かつ」の判定
  • OR関数:1つでも条件が成立するとTRUE。=OR(条件1, 条件2, …) で「または」の判定
  • NOT関数:条件の結果を反転。=NOT(条件) で「でない」の判定
  • IF+AND/OR/NOT:論理関数をIFの第1引数に入れることで、結果として任意の文字列や値を返せる
  • AND・OR・NOTは組み合わせて使うことで複雑な複合条件も表現できる
  • 集計には COUNTIFS・SUMIFS が適しており、AND関数との使い分けが重要

AND・OR・NOT関数をマスターすると、IF関数の表現力が格段に上がります。まずは身近な業務データを使って「2つの条件を満たしたら〇〇」という簡単なIF+ANDから試してみましょう。

【Excel】IF関数の使い方|基本から複数条件・ネストまで初心者向けに解説
【Excel】IF関数の使い方|基本から複数条件・ネストまで初心者向けに解説
【Excel】COUNTIFS関数の使い方!複数条件でカウントする方法を徹底解説
【Excel】COUNTIFS関数の使い方!複数条件でカウントする方法を徹底解説
【Excel】VLOOKUP関数の使い方|基本から応用まで初心者向けに解説
【Excel】VLOOKUP関数の使い方|基本から応用まで初心者向けに解説
Excel業務の自動化
その手作業、自動化しませんか?

VBA開発・GAS連携・Webアプリ化まで、
業務に合わせた最適な自動化をご提案します。

1,600部ツール販売実績
15年製造業の業務経験
無料で相談する →
初回相談無料・お見積りだけでもOK

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
記事URLをコピーしました