FILTER関数と複数条件設定【AND条件とOR条件の併用とまとめ】

ExcelのFILTER関数において、第二引数「含む」でAND条件とOR条件を併用するときは、個々の条件を適切に結合して、必要なデータが正しく抽出されるようにする必要があります。

FILTER関数と複数条件設定:前の記事

まずはおさらいです。

FILTER関数とAND条件

FILTER関数で複数条件によるデータ抽出【AND条件】
ExcelのFILTER関数は、条件に一致するデータだけを抽出する強力なツールですが、複数の条件で絞り込みたい場合はどうすればいいでしょうか。この記事では、FILTER関数を使用して複数の条件を組み合わせてAND条件抽出を作成する方法を解説...

FILTER関数とOR条件

FILTER関数で複数条件によるデータ抽出【OR条件】
FILTER関数とOR条件FILTER関数とOR条件を組み合わせると、柔軟かつ強力なデータ抽出が可能になります。今回はその方法を詳しく解説します。FILTER関数は、指定された範囲から特定の基準に一致するデータのみを返す関数です。AND条件...

AND条件とOR条件の併用:概要

原則

  • AND条件はすべての条件が真である必要があります。これを実現するためには、各条件を*(乗算記号)で結合します。これは、真(TRUE)を1、偽(FALSE)を0として扱うExcelの計算規則に基づいています。したがって、全ての条件が真の場合のみ、結果は1(真)になります。
  • OR条件は条件のいずれか一つが真であればよいです。これを実現するためには、条件を+(加算記号)で結合します。論理的には、「いずれかの条件が真であれば結果は真」という意味になります。

併用の方法

ANDとOR条件を併用する場合、まずはそれぞれの条件群を別々に計算させます。これは、AND条件とOR条件が異なる優先順位を持つためです。

  • OR条件群を一つのブロックとしてカッコ()で囲みます。これにより、そのブロック内のどれか一つが真であれば、ブロック全体の結果が真になります。
  • その後、AND条件と結合します。これは全ての条件が同時に真であることを要求するため、複数のORブロックを含む各AND条件を*で結合します。

注意点

  • 条件式全体はカッコで囲むことが一般的です。これは、計算の順序を明確にするために重要です。
  • Excelで計算するときは、特に複雑な条件の組み合わせでは、論理の流れを段階的に確認することが重要です。可能であれば、部分的に式を評価して、各ステップで期待通りの結果が得られているかを検証してください。

結果として、適切にカッコを使用して条件をグループ化し、ANDとORの論理演算を正確に反映させることが、FILTER関数を使用したデータ抽出における成功の鍵です。

FILTER関数と複数条件・実例

実例テーブル(A1:F29)

商品番号分類商品名ジャンル価格カロリー
10001持帰り梅おにぎりおにぎり110175
10002持帰りおにぎりセットおにぎり250420
10003店内おにぎりバスケットおにぎり340650
10004持帰りカツサンドサンドイッチ290530
10005店内クラブサンドサンドイッチ420510
10006持帰り鮭おにぎりおにぎり130185
10007持帰りサラダサンドサンドイッチ210340
10008店内サラダボウル惣菜350160
10009店内中華定食定食12001120
10010持帰り中華丼弁当700840
10011持帰りツナおにぎりおにぎり120220
10012店内トンカツ定食定食12001380
10013持帰りトンカツ弁当弁当7501340
10014店内トン汁惣菜200180
10015店内煮魚定食定食1050725
10016持帰りのり弁当弁当6201020
10017店内ハヤシライス定食920880
10018店内ハンバーグセット定食11501235
10019店内ビーフカレー定食900940
10020持帰り豚丼弁当600760
10021持帰りフライ弁当弁当6901250
10022持帰り味噌汁惣菜8040
10023店内ミックスグリル定食11001160
10024店内ミックス定食定食950950
10025持帰りミニサラダ惣菜15085
10026持帰りミックスサンドサンドイッチ320460
10027店内フライドチキンセット惣菜480720
10028持帰り助六セットおにぎり390550

実例 1: 分類「店内」でジャンル「惣菜」か「定食」

この条件に一致する行を抽出するには、以下のFILTER関数を使用します。

=FILTER(A2:F29, (B2:B29 = "店内") * ((D2:D29 = "惣菜") + (D2:D29 = "定食")))

解説

  • (B2:B29 = "店内")は「分類」が「店内」であるかどうかの条件を評価します。
  • (D2:D29 = "惣菜") + (D2:D29 = "定食")は「ジャンル」が「惣菜」か「定食」であるかどうかの条件を評価し、OR条件を形成します。
  • 上記の二つの式は*で結合されているため、AND条件を形成します。

実例 2: ジャンル「おにぎり」、「惣菜」、かつ価格が300以上

この条件に一致する行を抽出するには、以下のFILTER関数を使用します。

=FILTER(A2:F29, ((D2:D29 = "おにぎり") + (D2:D29 = "惣菜")) * (E2:E29 >= 300))

解説

  • (D2:D29 = "おにぎり") + (D2:D29 = "惣菜") は「ジャンル」が「おにぎり」または「惣菜」のいずれかであるかどうかの条件を評価し、OR条件を形成します。また、この部分をカッコで囲みグループとします。
  • (E2:E29 >= 300)は価格が300以上であるかどうかを評価し、これは単一のAND条件です。
  • これらの条件を*で結合することで、AND条件とOR条件が併用されます。

実例 3: ジャンル「おにぎり」、「惣菜」、「弁当」で、かつ価格が300以上700未満

ジャンルが「おにぎり」、「惣菜」、「弁当」のいずれかであり、かつ価格が300以上700未満のデータを抽出するFILTER関数を用いた式は以下のようになります。

=FILTER(A2:F29, ((D2:D29 = "おにぎり") + (D2:D29 = "惣菜") + (D2:D29 = "弁当")) * (E2:E29 >= 300) * (E2:E29 < 700))

解説

OR条件の設定
  • (D2:D29 = "おにぎり") + (D2:D29 = "惣菜") + (D2:D29 = "弁当")はジャンルが「おにぎり」、「惣菜」、または「弁当」のいずれかに当てはまる行を識別するOR条件です。
  • この場合、加算(+)記号を用いて各条件を結合しています。Excelでは真(TRUE)は数値の1として扱われ、偽(FALSE)は0として扱われるため、どれか一つでも真であれば、結果は真(1以上)になります。
AND条件の設定
  • (E2:E29 >= 300)は価格が300以上であることを確認する条件です。
  • (E2:E29 < 700)は価格が700未満であることを確認する条件です。
  • これらの条件は乗算(*)記号で結合され、AND条件を形成しています。これにより、価格が300以上700未満の行のみが抽出されます。

コメント