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 | 持帰り | 梅おにぎり | おにぎり | 110 | 175 |
10002 | 持帰り | おにぎりセット | おにぎり | 250 | 420 |
10003 | 店内 | おにぎりバスケット | おにぎり | 340 | 650 |
10004 | 持帰り | カツサンド | サンドイッチ | 290 | 530 |
10005 | 店内 | クラブサンド | サンドイッチ | 420 | 510 |
10006 | 持帰り | 鮭おにぎり | おにぎり | 130 | 185 |
10007 | 持帰り | サラダサンド | サンドイッチ | 210 | 340 |
10008 | 店内 | サラダボウル | 惣菜 | 350 | 160 |
10009 | 店内 | 中華定食 | 定食 | 1200 | 1120 |
10010 | 持帰り | 中華丼 | 弁当 | 700 | 840 |
10011 | 持帰り | ツナおにぎり | おにぎり | 120 | 220 |
10012 | 店内 | トンカツ定食 | 定食 | 1200 | 1380 |
10013 | 持帰り | トンカツ弁当 | 弁当 | 750 | 1340 |
10014 | 店内 | トン汁 | 惣菜 | 200 | 180 |
10015 | 店内 | 煮魚定食 | 定食 | 1050 | 725 |
10016 | 持帰り | のり弁当 | 弁当 | 620 | 1020 |
10017 | 店内 | ハヤシライス | 定食 | 920 | 880 |
10018 | 店内 | ハンバーグセット | 定食 | 1150 | 1235 |
10019 | 店内 | ビーフカレー | 定食 | 900 | 940 |
10020 | 持帰り | 豚丼 | 弁当 | 600 | 760 |
10021 | 持帰り | フライ弁当 | 弁当 | 690 | 1250 |
10022 | 持帰り | 味噌汁 | 惣菜 | 80 | 40 |
10023 | 店内 | ミックスグリル | 定食 | 1100 | 1160 |
10024 | 店内 | ミックス定食 | 定食 | 950 | 950 |
10025 | 持帰り | ミニサラダ | 惣菜 | 150 | 85 |
10026 | 持帰り | ミックスサンド | サンドイッチ | 320 | 460 |
10027 | 店内 | フライドチキンセット | 惣菜 | 480 | 720 |
10028 | 持帰り | 助六セット | おにぎり | 390 | 550 |
実例 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未満の行のみが抽出されます。
コメント