【Excel】AND条件とOR条件を組み合わせた判定!Excelの複合条件を正確に記述するロジック構成

【Excel】AND条件とOR条件を組み合わせた判定!Excelの複合条件を正確に記述するロジック構成
🛡️ 超解決

Excelで複数の条件を組み合わせてデータを判定したい場面は多いでしょう。例えば、「A列が10以上」かつ「B列が5以下」といったAND条件、あるいは「C列が東京」または「D列が大阪」といったOR条件の組み合わせは、業務で頻繁に利用されます。これらの複合条件を正確に記述できないと、意図しない結果となり、データ分析や集計作業に誤りが生じる可能性があります。この記事では、ExcelでAND条件とOR条件を組み合わせた複合条件を正確に記述するためのロジック構成を解説します。

複雑な条件判定を正確に行うための考え方から、具体的な関数を使った記述方法、そしてよくある間違いとその対処法までを網羅することで、Excelでのデータ処理能力を向上させることができます。

ADVERTISEMENT

複合条件判定におけるANDとORの役割

Excelで複数の条件を組み合わせる際、AND条件とOR条件は、それぞれ異なる意味合いを持ちます。AND条件は、指定した全ての条件が満たされている場合に「真(TRUE)」と判定されます。一方、OR条件は、指定した条件のうち、いずれか一つでも満たされていれば「真(TRUE)」と判定されます。

これらのANDとORを理解し、適切に組み合わせることで、より複雑で現実的なビジネスロジックをExcelで表現することが可能になります。例えば、「売上が100万円以上」かつ「顧客ランクがゴールド」であるか、あるいは「購入回数が5回以上」である、といった条件を一つの判定式で処理できます。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

AND条件とOR条件を組み合わせる基本的な考え方

AND条件とOR条件を組み合わせる基本的な考え方は、判定したいロジックを分解し、それぞれをExcelの関数で表現することです。多くの場合、AND条件はAND関数、OR条件はOR関数を使用して記述します。

これらの関数をネスト(入れ子にする)することで、複雑な複合条件を表現します。例えば、「(条件A AND 条件B)OR(条件C)」のようなロジックは、Excelの関数で直接記述できます。重要なのは、どの部分をANDで結び、どの部分をORで結ぶのか、その優先順位を明確にすることです。

IF関数とAND関数、OR関数を組み合わせた記述方法

Excelで複合条件による判定を行う場合、多くはIF関数を主軸に、AND関数OR関数を組み合わせて使用します。IF関数は、指定した条件が真か偽かに応じて、異なる結果を返す関数です。

IF関数は「IF(条件, 真の場合の値, 偽の場合の値)」という書式で記述します。この「条件」の部分に、AND関数やOR関数、あるいはそれらを組み合わせた式を記述することで、複合条件の判定を実現します。

AND条件のみで判定する場合

複数の条件がすべて満たされる場合にのみ「真」としたい場合は、AND関数を使用します。例えば、A1セルの値が10以上かつB1セルの値が5以下であるかを判定する場合、以下のようになります。

【要点】AND条件とOR条件を組み合わせた複合条件判定

  • IF関数とAND関数: 複数の条件がすべて満たされる場合に特定の値を表示します。
  • IF関数とOR関数: いずれかの条件が満たされる場合に特定の値を表示します。
  • IF関数、AND関数、OR関数のネスト: 複雑な条件ロジックを段階的に構築し、正確な判定を行います。

AND関数は、引数に指定したすべての条件がTRUEの場合にTRUEを返します。最大255個の条件を指定できます。

例えば、A1セルが10以上、かつB1セルが5以下であるかを判定するには、IF関数とAND関数を以下のように組み合わせます。

数式例:
=IF(AND(A1>=10, B1<=5), "条件を満たす", "条件を満たさない")

この数式は、A1が10以上であり、かつB1が5以下である場合に「条件を満たす」と表示し、それ以外の場合は「条件を満たさない」と表示します。

OR条件のみで判定する場合

いずれかの条件が満たされれば「真」としたい場合は、OR関数を使用します。例えば、C1セルの値が「東京」またはD1セルの値が「大阪」であるかを判定する場合、以下のようになります。

OR関数は、引数に指定した条件のうち、一つでもTRUEの場合にTRUEを返します。こちらも最大255個の条件を指定できます。

例えば、C1セルが「東京」またはD1セルが「大阪」であるかを判定するには、IF関数とOR関数を以下のように組み合わせます。

数式例:
=IF(OR(C1=”東京”, D1=”大阪”), “条件を満たす”, “条件を満たさない”)

この数式は、C1が「東京」であるか、またはD1が「大阪」である場合に「条件を満たす」と表示し、それ以外の場合は「条件を満たさない」と表示します。

AND条件とOR条件を組み合わせた判定(ネスト)

より複雑な条件、例えば「(A1が10以上 かつ B1が5以下)または(C1が東京)」といったロジックを表現したい場合は、AND関数とOR関数をIF関数の中でネストします。

この場合、どの条件を先に評価するか、つまりAND条件とOR条件のどちらを優先させるかが重要になります。一般的には、括弧を使って評価の順序を明確にします。Excelでは、関数の引数として別の関数を指定することでネストを実現します。

例えば、「A1が10以上」かつ「B1が5以下」であり、さらに「C1が東京」である場合に「判定OK」としたい場合、AND関数を複数使用します。

数式例1(AND条件の組み合わせ):
=IF(AND(A1>=10, B1<=5, C1="東京"), "判定OK", "NG")

次に、「(A1が10以上 かつ B1が5以下)または(C1が東京)」という条件を考えます。この場合、まず「A1が10以上 かつ B1が5以下」というAND条件を評価し、その結果と「C1が東京」というOR条件を組み合わせます。

数式例2(ANDとORの組み合わせ):
=IF(OR(AND(A1>=10, B1<=5), C1="東京"), "判定OK", "NG")

この数式では、まずAND(A1>=10, B1<=5)が評価され、その結果(TRUEまたはFALSE)とC1="東京"の結果がOR関数によって評価されます。どちらかの結果がTRUEであれば、IF関数は「判定OK」を返します。

ネストの順序と括弧の重要性

複合条件を記述する際には、評価の順序を誤ると意図しない結果になるため、括弧の使い方が非常に重要です。Excelの関数は、記述された順序と括弧によって評価されます。

例えば、IF(AND(OR(A1>10, B1<5), C1="東京"), "True", "False") という数式は、「C1が東京」であり、かつ「A1が10より大きい」または「B1が5より小さい」場合にTRUEとなります。

対照的に、IF(OR(AND(A1>10, B1<5), C1="東京"), "True", "False") という数式は、「A1が10より大きく、かつB1が5より小さい」という条件がTRUEになるか、または「C1が東京」である場合にTRUEとなります。

このように、括弧の配置一つで条件の解釈が全く異なるため、論理構造を正確に把握し、括弧で明確に区切ることが不可欠です。

ADVERTISEMENT

具体的なロジック構成例

ここでは、ビジネスシーンでよくある複合条件の例をいくつか挙げ、そのロジック構成とExcelでの記述方法を解説します。

例1:売上目標達成と顧客ランクの組み合わせ

「売上が100万円以上」かつ「顧客ランクがゴールド」である場合に、特別割引を適用したいとします。A1セルに売上金額、B1セルに顧客ランクが入力されているとします。

ロジック: (売上 >= 1000000) AND (顧客ランク = “ゴールド”)

Excel数式:

=IF(AND(A1>=1000000, B1=”ゴールド”), “特別割引適用”, “対象外”)

例2:特定地域または特定期間の注文

「注文地域が東京」または「注文日が2024年1月1日以降」である場合に、キャンペーン対象としたいとします。C1セルに注文地域、D1セルに注文日(日付形式)が入力されているとします。

ロジック: (注文地域 = “東京”) OR (注文日 >= 2024/1/1)

Excel数式:

=IF(OR(C1=”東京”, D1>=DATE(2024,1,1)), “キャンペーン対象”, “対象外”)

※日付の比較には、DATE関数を使うと年・月・日を正確に指定でき、誤りを防ぎやすくなります。

例3:複数の条件を満たす、または単一の条件を満たす

「(A1が10以上 かつ B1が5以下)または(C1が東京)」という、ANDとORを組み合わせた複雑な条件を考えます。この場合、まずAND条件を評価し、その結果とOR条件を組み合わせます。

ロジック: ((A1 >= 10) AND (B1 <= 5)) OR (C1 = "東京")

Excel数式:

=IF(OR(AND(A1>=10, B1<=5), C1="東京"), "条件を満たす", "条件を満たさない")

このように、括弧を意識しながらAND関数とOR関数をネストすることで、複雑な条件ロジックを正確に表現できます。

よくある間違いと対処法

複合条件を記述する際に、初心者が陥りやすい間違いがいくつか存在します。ここでは、それらの間違いと具体的な対処法について解説します。

間違い1:ANDとORの優先順位を間違える

最もよくある間違いは、ANDとORの評価順序を誤ることです。Excelでは、AND関数はOR関数よりも一般的に優先されますが、括弧を使わずに複数のANDとORを並べると、意図しない評価順序になることがあります。

対処法:

常に括弧を使用して、条件の評価順序を明確にしてください。例えば、「(条件A AND 条件B) OR 条件C」のように、評価したいグループを括弧で囲むことで、Excelも人間も理解しやすくなります。

間違い2:条件の指定漏れや重複

複数の条件を指定する際に、必要な条件を一つ忘れてしまったり、同じ条件を重複して指定してしまったりすることがあります。

対処法:

判定したいロジックを箇条書きで書き出し、それぞれの条件がExcelの数式で正しく表現されているかを確認します。Excelの「数式の評価」機能(「数式」タブ → 「数式の分析」グループ → 「数式の評価」)を使うと、数式がどのように段階的に評価されているかを確認できるため、間違いの発見に役立ちます。

間違い3:文字列や数値の誤り

文字列の誤字脱字、大文字・小文字の違い、数値の桁数間違いなども、条件判定を誤らせる原因となります。Excelの文字列比較は、大文字・小文字を区別しませんが、全角・半角は区別します。

対処法:

文字列を比較する場合は、ExcelのIFERROR関数やEXACT関数を組み合わせるなど、より厳密な比較方法を検討します。また、数値の比較では、比較演算子(>=, <=, =, <>, >, <)が正しく使われているかを確認します。セルの値や数式が意図した通りになっているか、セルの値そのものを確認することも重要です。

間違い4:日付の比較ミス

日付の比較は、数値の比較以上に注意が必要です。日付が文字列として扱われている場合、正しく比較できません。

対処法:

日付は必ずExcelが認識できる日付シリアル値として入力されているか確認してください。日付の入力には、DATE関数や、Excelの自動認識機能(例: “2024/1/1”)を利用し、セルの表示形式を「日付」に設定することが推奨されます。比較する際は、DATE関数で生成した値と比較するのが最も確実です。

応用:SUMPRODUCT関数を使った複合条件判定

IF関数とAND/OR関数を組み合わせる方法が一般的ですが、条件に合致するデータの個数や合計値を求めたい場合には、SUMPRODUCT関数も非常に有効です。SUMPRODUCT関数は、配列間の積の合計を計算する関数ですが、条件を指定することで、複合条件に合致する件数などを求めることができます。

SUMPRODUCT関数による件数のカウント

例えば、「A1:A10」の範囲が10以上、「B1:B10」の範囲が5以下であるデータの個数を数えたい場合、SUMPRODUCT関数は以下のように記述できます。

数式例:
=SUMPRODUCT((A1:A10>=10)*(B1:B10<=5))

この数式では、各条件がTRUE(1)またはFALSE(0)を返します。それらを乗算することで、すべての条件がTRUEとなる行のみが1となり、SUMPRODUCT関数がその合計(つまり条件を満たす件数)を返します。

OR条件を組み合わせる場合は、条件を「+」でつなぎます。

数式例(OR条件):
=SUMPRODUCT((C1:C10=”東京”)+(D1:D10=”大阪”))

SUMPRODUCT関数は、IF関数のように直接的な判定結果を表示するものではありませんが、集計処理においては非常に強力なツールとなります。

まとめ

ExcelでAND条件とOR条件を組み合わせた複合条件を正確に記述するには、IF関数、AND関数、OR関数を効果的にネストさせることが重要です。

本記事で解説した、括弧による評価順序の明確化、具体的なロジック構成例、そしてよくある間違いへの対処法を実践することで、複雑なデータ判定も自信を持って行えるようになります。さらに、SUMPRODUCT関数のような応用的な関数も活用することで、データ集計の幅も広がります。

まずは簡単なAND条件とOR条件の組み合わせから試してみて、徐々に複雑なロジックに挑戦してみてください。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】