📊つかえる関数.com

FILTER関数でAND条件(AかつB)を指定する方法は?

結論

FILTER関数のAND条件は、条件式を括弧で囲んで * 演算子で結合することで実現できます。

新機能中級·

詳しい解説

FILTER関数でAND条件を指定するには、条件式を `*` 演算子で結合します。例えば `=FILTER(A2:D100, (B2:B100="東京")*(C2:C100>=100))` とすると、東京かつ売上が100以上のデータのみが抽出されます。各条件はTRUE(1)またはFALSE(0)として評価され、`*` で乗算されるため、両方がTRUEのときのみ1になり抽出されます。複数のAND条件を追加する場合は、さらに `*(D2:D100="完了")` のように続けることができます。

旧バージョンでの代替方法

詳細フィルター(高度なフィルター)Excel 2016以降

データタブ→「詳細設定」で条件範囲を別セルに記述するAND/OR条件抽出。FILTER関数と異なり静的な結果を別の場所に貼り付け可能。全バージョン対応。

ヘルパー列とオートフィルターExcel 2016以降

作業列に条件式(=AND(B2="東京", D2>=500000))を入力し、TRUEだけをオートフィルターで絞り込む方法。FILTER関数が使えない2016/2019でも実現可能。

よくあるエラーと対処法

#CALC!

原因: FILTER関数の条件に一致するデータが1件もない場合に発生する。

対処: FILTER関数の第3引数(一致なし時の値)を指定する。例:=FILTER(A2:D100, 条件, "該当なし")。

#SPILL!

原因: FILTER関数の結果が展開されるスピル範囲に既存のデータがある。

対処: FILTER関数を入力するセルの下・右方向の範囲を空にする。

#NAME?(2016/2019で開いた場合)

原因: FILTER関数はExcel 2021/2024/365専用のため、2016/2019で開くと#NAME?エラーになる。数式バーに`_xlfn.FILTER`と表示される。

対処: 詳細フィルターまたはSUMPRODUCT+IF等の旧関数で代替する。共有相手のバージョンを事前に確認すること。

執筆・検証:田中 けんた|Excel歴15年・MOS資格保持

バージョン対応

バージョン対応状況
Excel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
FILTER関数は未対応FILTER関数は未対応対応対応対応

実務での使用例

東京で高額売上のデータ抽出

東京支店で売上が50万円以上のデータのみ抽出

=FILTER(A2:D100, (B2:B100="東京")*(D2:D100>=500000))

完了済み高優先度タスク

ステータスが「完了」かつ優先度が「高」のタスクを抽出

=FILTER(A2:E200, (C2:C200="完了")*(D2:D200="高")*(E2:E200>=TODAY()-30))
  1. C列がステータス、D列が優先度、E列が完了日の場合
  2. 3つの条件を * で結合
  3. 過去30日以内に完了した高優先度タスクが抽出される