概要
「担当者=Aさん かつ 商品=X だけ」「店舗=東京 かつ 売上が1万円以上だけ」――
こういう“複数条件での抽出”は、FILTER関数が一番シンプルです。
FILTERは
「元データの範囲」と「条件(TRUE/FALSEの組み合わせ)」を渡すだけで、
条件に合う行だけを“丸ごと”抜き出してくれます。
複数条件は、掛け算(*)で AND 条件、足し算(+)で OR 条件と覚えるとスムーズです。
FILTER関数の基本
書式
=FILTER(元データ範囲, 条件, [該当なしのとき])
- 元データ範囲:抽出したい表全体(ヘッダーを除いたデータ部分が基本)
- 条件:行ごとに TRUE / FALSE になる式(複数でもOK)
- 該当なしのとき:条件に合う行が1件もない場合に返す値(省略可)
例:
A2:D100 に売上データがあるとして、A列が日付、B列が担当者、C列が商品、D列が金額。
「担当者がF2 の行だけ抽出する」なら:
=FILTER(A2:D100, B2:B100=F2)
これが単一条件の基本形です。
複数条件(AND 条件)の書き方
「担当者=F2 かつ 商品=G2」の行だけ抽出
上記の売上表で、
担当者B列=F2、商品C列=G2 の行だけ欲しい場合:
=FILTER(A2:D100, (B2:B100=F2) * (C2:C100=G2))
ポイントをかみ砕くと:
(B2:B100=F2)… 行ごとに「担当者がF2ならTRUE、それ以外はFALSE」(C2:C100=G2)… 行ごとに「商品がG2ならTRUE、それ以外はFALSE」- TRUEを1、FALSEを0とみなして、
TRUE * TRUE だけが1(抽出対象)になり、それ以外は0(除外)
この「条件同士を * で掛け合わせる」= AND 条件、が複数条件検索の基本パターンです。
AND 条件+数値条件(売上金額も絞る)
「担当者=F2 かつ 商品=G2 かつ 売上が1万円以上」なら:
=FILTER(A2:D100,
(B2:B100=F2) * (C2:C100=G2) * (D2:D100>=10000))
複数条件(OR 条件)の書き方
「担当者がF2 または G2」の行だけ抽出
担当者が「F2さん or G2さん」の行だけ欲しい場合:
=FILTER(A2:D100, (B2:B100=F2) + (B2:B100=G2))
ここでは、
TRUEを1、FALSEを0として、
- TRUE + FALSE = 1(抽出)
- FALSE + TRUE = 1(抽出)
- TRUE + TRUE = 2(抽出)
- FALSE + FALSE = 0(除外)
というイメージです。
AND と OR を組み合わせる
「担当者はF2 or G2 のどちらか」かつ「売上1万円以上」という条件なら、
OR 部分をカッコでくくってから AND 条件を掛けます。
=FILTER(A2:D100,
((B2:B100=F2) + (B2:B100=G2)) * (D2:D100>=10000))
「該当なし」のときにメッセージを出す
FILTER は条件に合う行が0件だと #CALC! エラーになります。
ユーザーにやさしくするには、第3引数にメッセージを指定します。
=FILTER(A2:D100,
(B2:B100=F2) * (C2:C100=G2),
"該当データなし")
これで、条件に一致する行がないときは「該当データなし」と表示されます。
よくあるつまずきと対策
条件の範囲サイズを必ずそろえる
FILTER の元データ範囲と、条件で使う列範囲は、行数が同じである必要があります。
例:元データ A2:D100 なら、
条件は A2:A100, B2:B100, … のように「2行目〜100行目」で合わせること。
サイズがずれるとエラーになります。
AND は「*」、OR は「+」と覚える
- AND(かつ) →
* - OR(または) →
+
というルールが FILTER では定番です。
条件の数が増えても、この組み合わせでどんどん書けます。
空白行を除外したいとき
日付や担当者が空の行は無視したい場合は、
「<>””」を条件に加えます。
=FILTER(A2:D100,
(A2:A100<>"") * (B2:B100=F2) * (C2:C100=G2))
例題
問題1: A2:D100 に「日付, 担当者, 商品, 金額」の表があります。担当者が F2 の行だけを別シートに抽出する式を G2 に書いてください。
=FILTER(A2:D100, B2:B100=F2)
問題2: 同じ表で、「担当者=F2 かつ 商品=G2」の行だけを抽出する式を H2 に書いてください。
=FILTER(A2:D100, (B2:B100=F2) * (C2:C100=G2))
問題3: 「担当者=F2 かつ 商品=G2 かつ 金額が1万円以上」の行だけを抽出する式を I2 に書いてください。
=FILTER(A2:D100,
(B2:B100=F2) * (C2:C100=G2) * (D2:D100>=10000))
問題4: 「担当者が F2 または G2」の行だけを抽出し、該当がなければ「該当データなし」と表示する式を J2 に書いてください。
=FILTER(A2:D100,
(B2:B100=F2) + (B2:B100=G2),
"該当データなし")
問題5: 「担当者が F2 または G2」かつ「金額が1万円以上」かつ「日付が空白でない」行だけを抽出する式を K2 に書いてください。
=FILTER(A2:D100,
((B2:B100=F2) + (B2:B100=G2)) *
(D2:D100>=10000) *
(A2:A100<>""),
"該当データなし")
まとめ
複数条件検索を FILTER で書くときのコアは、次の3つです。
- 基本形:
=FILTER(範囲, 条件, "該当なし") - AND 条件は
条件1 * 条件2 * 条件3 - OR 条件は
条件1 + 条件2
このパターンさえ身体に入れば、
「担当者 × 商品 × 金額 × 日付」など、現場でよくある“複数条件抽出”が
すべて同じ考え方で書けるようになります。
