excel

エクセルでIFを使って複数条件の一致を判定する方法(AND・OR・全て満たす・いずれか)

当サイトでは記事内に広告を含みます

Excelでのデータ管理や分析において、特定の条件に基づいてデータを振り分けたり、計算したりする作業は頻繁に発生します。

特に、単一の条件だけでなく「〇〇かつ△△」や「〇〇または△△」といった複数の条件を同時に満たすかどうかを判定する必要がある場合、その処理は少し複雑になるでしょう。

本記事では、Excelの強力な機能であるIF関数を核として、AND関数やOR関数を組み合わせることで、多様な複数条件の一致を効率的に判定する方法を、具体的な例を交えながら詳しく解説します。

ビジネスシーンでのデータ処理をスムーズに進めるための実践的なテクニックを習得できますので、ぜひご一読ください。

Excelで複数条件を判定するにはIF関数とAND/OR関数を組み合わせるのが基本!

それではまず、Excelで複数条件を判定する基本について解説していきます。

Excelで複数の条件を同時に、あるいはどちらか一方でも満たすかどうかを判定する場合、基本的にはIF関数にAND関数やOR関数を組み合わせるのが最も効率的です。

IF関数は単一の論理式に基づいて真偽を判定し、それぞれに対応する結果を返しますが、AND関数やOR関数は複数の論理式をまとめて評価し、その結果をIF関数に渡す役割を果たします。

これにより、「条件1と条件2の両方を満たす場合」や「条件1か条件2のいずれかを満たす場合」といった複雑な判定が可能となるのです。

関数組み合わせ 判定したいケース 論理式の評価
IF関数のみ 単一の条件 1つの条件が真か偽か
IF + AND関数 全ての条件を満たす場合 全ての条件が真の場合に真、それ以外は偽
IF + OR関数 いずれかの条件を満たす場合 いずれかの条件が真の場合に真、それ以外は偽
IF + AND + OR関数 より複雑な条件 ANDとORの組み合わせルールに従い評価

IF関数の基本的な使い方を再確認

まずは、IF関数の基本的な構造と使い方をおさらいしましょう。

IF関数は、指定された条件(論理式)が真(TRUE)か偽(FALSE)かを判断し、その結果に基づいて異なる値を返す関数です。

書式は「=IF(論理式, 真の場合の値, 偽の場合の値)」となります。

たとえば、セルA1の値が100以上であれば「合格」、そうでなければ「不合格」と表示したい場合は、次のようになります。

=IF(A1>=100, “合格”, “不合格”)

このシンプルさが、IF関数の強力な基盤を形成していると言えるでしょう。

AND関数で全ての条件を満たすケースを判定

次に、複数の条件が全て満たされる場合に真を返すAND関数を見ていきます。

AND関数の書式は「=AND(論理式1, 論理式2, …)」です。

指定された全ての論理式が真の場合にのみ真(TRUE)を返し、一つでも偽(FALSE)があれば偽を返します。

このAND関数をIF関数の論理式部分に組み込むことで、「条件1も条件2も両方満たしたら○○」という判定が可能になるのです。

例えば、セルA1が100以上「かつ」セルB1が50以上の場合に「OK」と表示したいなら、次のようになります。

=IF(AND(A1>=100, B1>=50), “OK”, “NG”)

この組み合わせにより、複数条件が同時に満たされるケースを正確に捉えられます。

OR関数でいずれかの条件を満たすケースを判定

複数の条件のうち、どれか一つでも満たされる場合に真を返すのがOR関数です。

OR関数の書式は「=OR(論理式1, 論理式2, …)」となります。

指定された論理式のどれか一つでも真であれば真(TRUE)を返し、全ての論理式が偽の場合にのみ偽を返します。

これをIF関数と組み合わせれば、「条件1か条件2のどちらかを満たしたら○○」といった判定が実現可能です。

例えば、セルA1が100以上「または」セルB1が50以上の場合に「対象」と表示したいなら、次の関数式になります。

=IF(OR(A1>=100, B1>=50), “対象”, “対象外”)

このように、ANDとORを使い分けることで、多様な条件判定のニーズに応えられます。

AND関数とIF関数で「全ての条件を満たす」判定を具体的に実践

続いては、AND関数とIF関数を組み合わせた具体的な実践方法を確認していきます。

AND関数をIF関数と組み合わせることで、「全ての条件を満たす」場合に特定の処理を実行させることが可能です。

これは、データフィルタリングや特定の基準に基づく評価など、ビジネスシーンで非常に役立つでしょう。

例えば、複数のテストの点数が全て一定の基準を超えているか、複数の部門で目標が達成されているか、といったケースで活用できます。

AND関数のネスト(入れ子)構造

AND関数は、複数の論理式を引数として受け取りますが、特定のシナリオではAND関数自体をネスト(入れ子)にすることも可能です。

ただし、これは稀なケースであり、通常は一つのAND関数内に複数の論理式をカンマ区切りで記述する形が一般的でしょう。

例えば、「AがX以上、かつBがY以下、かつCがZと等しい」というような条件は、

=AND(A1>=X, B1<=Y, C1=Z)

のようにシンプルに記述できます。

このように、複数の条件を論理式として順番に指定していくだけで、複雑な「全て満たす」判定を容易に構築できます。

複数条件のAND判定例:成績評価

具体的な例として、学生の成績評価を考えてみましょう。

「国語と数学の両方が80点以上であれば『優良』、そうでなければ『再評価』」という条件で評価を行いたいとします。

国語の点数がセルB2、数学の点数がセルC2に入力されている場合、数式は次のようになります。

=IF(AND(B2>=80, C2>=80), “優良”, “再評価”)

この数式を評価セルに入力し、下にオートフィルすれば、全ての学生に対して一度に成績評価を適用できるでしょう。

これにより、手作業での評価ミスを防ぎ、効率的なデータ処理が実現します。

AND関数とIF関数の組み合わせにおけるエラーハンドリング

数式を作成する際には、予期せぬエラーが発生することもあります。

例えば、参照するセルに数値以外のデータが入力されていたり、空白だったりする場合です。

このようなケースでは、IFERROR関数を組み合わせることで、エラー表示を抑制し、より分かりやすいメッセージを表示させることが可能です。

先の成績評価の例で、もしB2やC2にエラー値や文字列が入っていた場合、IF関数はエラーを返すことがあります。

これを防ぐには、

=IFERROR(IF(AND(B2>=80, C2>=80), “優良”, “再評価”), “入力エラー”)

といった形で、エラー発生時に「入力エラー」と表示させることで、ユーザーフレンドリーなシートを作成できるでしょう。

OR関数とIF関数で「いずれかの条件を満たす」判定を具体的に実践

続いては、OR関数とIF関数を組み合わせた具体的な実践方法を確認していきます。

OR関数とIF関数を組み合わせることで、複数の条件のうち、一つでも満たされれば特定の処理を実行できる判定を作成できます。

これは、特定の対象者を抽出したり、複数の基準のいずれかを満たす場合に特典を付与したりする際などに非常に便利です。

例えば、「VIP会員であるか、または購入金額が一定以上の場合に割引を適用する」といったシナリオで役立つでしょう。

OR関数の基本的な組み合わせ方

OR関数の基本的な使い方をIF関数と組み合わせる場合、AND関数と同様にIF関数の最初の引数である論理式の部分にOR関数を挿入します。

例えば、「商品Aまたは商品Bのいずれかが在庫切れの場合に『要発注』と表示する」というケースを考えてみましょう。

商品Aの在庫数がセルB2、商品Bの在庫数がセルC2にあり、在庫切れを0と定義する場合、数式は以下のようになります。

=IF(OR(B2=0, C2=0), “要発注”, “在庫あり”)

この数式により、どちらか一方でも在庫がゼロであれば「要発注」という結果が得られるでしょう。

複数条件のOR判定例:割引対象者

もう一つ、具体的な例として、顧客への割引適用条件を考えてみましょう。

「会員ランクがAランク、または過去6ヶ月の購入額が10万円以上の場合に『割引対象』、そうでなければ『通常価格』」という条件を設定したいとします。

会員ランクがセルB2、過去6ヶ月の購入額がセルC2に入力されている場合、数式は次のようになります。

重要なポイントは、OR関数が指定された条件のうち一つでも真であれば全体を真と判断するという特性です。

これにより、非常に柔軟な条件設定が可能となり、幅広いビジネス要件に対応できるようになるでしょう。

=IF(OR(B2=”Aランク”, C2>=100000), “割引対象”, “通常価格”)

この数式を適用すれば、顧客データから簡単に割引対象者を抽出できるはずです。

OR関数使用時の注意点とよくある落とし穴

OR関数は非常に便利ですが、使用する際にはいくつかの注意点があります。

最も一般的な落とし穴は、「~ではない」という条件をOR関数に入れる場合です。

例えば、「Aではない、またはBではない」という条件は、「AとBのどちらか一方でもない場合」を意味し、意図しない結果を招くことがあります。

この場合は、De Morganの法則を適用し、「AND(A, B)ではない」という形で表現し、NOT関数を使用することを検討すべきでしょう。

また、OR関数で多数の条件を扱うと、数式が複雑になり可読性が低下する傾向があります。

そのような場合は、後述するIFS関数やVLOOKUP関数など、別の方法を検討することも大切です。

ANDとORを組み合わせたより複雑な複数条件の判定

続いては、AND関数とOR関数を組み合わせた、さらに複雑な条件判定について確認していきます。

ExcelのIF関数は、AND関数とOR関数を組み合わせることで、より複雑で高度な条件判定を実現できます。

これは、ビジネスロジックが多岐にわたるような場合に特に有効です。

例えば、「部署Aに所属し、かつ評価がSランク」または「部署Bに所属し、かつ評価がAランク以上」といった複合的な条件に基づいてボーナス支給を決定する場合などが考えられるでしょう。

組み合わせパターン 判定したい内容
ANDの中にOR (条件A かつ (条件B または 条件C)) 特定の部署に所属し、かつ(既婚または子持ち)
ORの中にAND ((条件A かつ 条件B) または (条件C かつ 条件D)) (部署Aで高評価) または (部署Bで経験豊富)

ANDとORのネスト構造の理解

AND関数とOR関数を組み合わせる際には、括弧を使って論理演算の順序を明確にすることが非常に重要です。

例えば、「Aかつ(BまたはC)」という条件と「(AかつB)またはC」という条件では、結果が大きく異なる可能性があります。

それぞれの関数が何を評価するのかを正確に理解し、適切な位置に括弧を配置することで、意図通りの条件判定を実現できるでしょう。

これにより、数式の可読性も向上し、後から修正や確認が必要になった場合でもスムーズに対応できます。

複雑な条件判定の具体例:ボーナス支給条件

先述のボーナス支給条件を具体例として見ていきましょう。

「部署が『営業』であり、かつ評価が『S』」であるか、または「部署が『開発』であり、かつ評価が『A』以上」である場合に「ボーナス支給」と判定したいとします。

部署がセルB2、評価がセルC2に入力されている場合、数式は次のようになります。

この数式では、2つのAND関数がそれぞれ独立した条件グループを形成し、それらがOR関数によって結合されています。

このように、複雑なビジネスルールもANDとORの組み合わせによって、Excel上で忠実に表現することが可能となるのです。

=IF(OR(AND(B2=”営業”, C2=”S”), AND(B2=”開発”, C2>=”A”)), “ボーナス支給”, “対象外”)

この数式を適用することで、複雑な条件に基づいてボーナス支給の有無を自動的に判断できるでしょう。

条件が増えた場合の管理と可読性の向上

ANDとORを組み合わせた数式は非常に強力ですが、条件が複雑になればなるほど、数式も長くなり、可読性が低下しやすくなります。

このような場合、以下の工夫をすることで、管理と可読性を向上させられます。

  • **名前の定義を活用する**: 長いセル参照や定数を名前として定義することで、数式を簡潔に保てるでしょう。
  • **複数セルに条件を分解する**: 複雑な論理式をいくつかの小さな条件式に分解し、それぞれを別のセルで計算し、その結果を参照する形にするのも有効です。
  • **コメントを付記する**: 数式にコメントを追加することで、何を判定しているのかが分かりやすくなります。

これらのテクニックを適宜活用し、数式のメンテナンス性を高めることが大切です。

IF関数のネストで複数条件を段階的に判定する

続いては、IF関数をネスト(入れ子)にして、段階的に複数条件を判定する方法について確認していきます。

AND関数やOR関数を使う以外にも、IF関数を複数組み合わせる、つまり「ネスト(入れ子)」にすることで、段階的な複数条件の判定を行うことが可能です。

これは、一つの条件が満たされない場合に次の条件を評価する、というような、優先順位のある条件判定に適しています。

例えば、成績評価で「90点以上ならA、そうでなければ80点以上ならB、それ以外はC」といった多段階評価の際に効果を発揮します。

ネストされたIF関数の基本構造

ネストされたIF関数は、最初のIF関数の「偽の場合の値」の部分に、さらに別のIF関数を記述していく構造です。

基本的な書式は次のようになります。

=IF(条件1, 結果1, IF(条件2, 結果2, IF(条件3, 結果3, …)))

この構造により、Excelはまず「条件1」を評価し、真であれば「結果1」を返します。

もし条件1が偽であれば、次に「条件2」を評価し、真であれば「結果2」を返します。

このプロセスを繰り返し、最後に全ての条件が偽であった場合のデフォルト値が返される仕組みです。

複数のIF関数を組み合わせた評価基準の例

具体的な例として、試験の点数に応じた評価基準を設定してみましょう。

「90点以上は『A』、80点以上は『B』、70点以上は『C』、それ以外は『D』」という評価を行いたいとします。

点数がセルB2に入力されている場合、数式は以下のようになります。

=IF(B2>=90, “A”, IF(B2>=80, “B”, IF(B2>=70, “C”, “D”)))

この数式は、まずB2が90以上かを判定し、次に80以上か、最後に70以上かを順に判定していきます。

このように、ネストされたIF関数は、段階的な条件判定において非常に直感的で強力なツールとなるでしょう。

ネストされたIF関数の限界と代替案

ネストされたIF関数は便利ですが、条件の数が増えすぎると、数式が非常に長くなり、管理が難しくなるという限界があります。

Excelのバージョンによっては、IF関数のネストレベルに制限がある場合もありました(最近のバージョンでは制限が緩和されています)。

もし条件が多すぎる場合は、以下の代替案を検討することをおすすめします。

  • **IFS関数**: Excel 2019以降のバージョンで利用できるIFS関数は、複数の条件とその結果を順番に記述できるため、ネストされたIF関数よりもはるかに簡潔に記述できます。
  • **VLOOKUP関数やXLOOKUP関数**: 評価基準がテーブルとして存在する場合、これらのルックアップ関数を使うことで、より柔軟かつ管理しやすい形で条件判定を行えます。
  • **CHOOSE関数**: 特定の数値に対応する選択肢を返す場合に利用できます。

これらの関数を適切に使い分けることで、数式の複雑さを軽減し、メンテナンス性を向上させられるでしょう。

まとめ

本記事では、Excelで複数条件の一致を判定するための様々な方法を解説しました。

IF関数を基本とし、AND関数やOR関数を組み合わせることで、「全ての条件を満たす」ケースや「いずれかの条件を満たす」ケースを効率的に判定できることを確認しましたね。

また、ANDとORを組み合わせることで、より複雑なビジネスロジックにも対応可能です。

さらに、IF関数のネストによる段階的な条件判定や、その限界と代替案についても触れました。

Excelでのデータ分析や管理において、これらの関数は非常に強力なツールとなります。

ぜひ、今回ご紹介したテクニックを日々の業務に活用し、より効率的で正確なデータ処理を実現してください。

複雑な条件も恐れずに、一つずつ理解を深めていくことが、Excelマスターへの近道となるでしょう。