
ExcelのFILTER関数を使って、複数の条件と一致する行を抽出する方法をご紹介します。複数条件を全て満たす(AND)の場合や、複数条件のいずれかを満たす(OR)の場合に分けて解説しているので、ぜひ参考にしてみてください。
FILTER関数の使い方

FILTER関数は条件に従ってフィルタ処理を行い、結果を指定した範囲から返します。
例えばA列が「産地」、B列が「商品名」のデータから、産地が「岡山」の行をすべて抽出したい場合、数式は以下のようになります。
例:=FILTER(A2:B5,A2:A5="岡山")
このようにFILTER関数使うと、特定の条件と一致する重複する複数の値や、複数列のデータを一度に抽出できるのが特徴です。
FILTER関数の引数:(範囲, 条件, [空の場合])
FILTER関数を複数条件(AND)にする方法

複数の条件をすべて満たす行だけを抽出したい場合、カッコ内に条件を記入し、それらを*
(アスタリスク)で掛け合わせていきます。
例えば「産地が『長野』」かつ「商品名が『りんご』」の行を抽出したい場合、数式は以下のようになります。
例:=FILTER(A2:B5,(A2:A5="長野")*(B2:B5="りんご"))
3つ以上のAND条件にする場合

条件が3つ以上になっても、同様にカッコで囲んだ条件式を*
で掛け合わせていきます。
例: =FILTER(A4:A7,(B4:B7="岡山")*(C4:C7="もも")*(D4:D7>=400))
FILTER関数を複数条件(OR)にする方法
単一列における複数条件(OR)の場合
REGEXTEST関数が使えない古いバージョンのExcelの場合、本ページの+
(プラス)記号を使ったOR条件の解説をご参照ください。

単一列における、複数の条件のいずれかを満たす行を抽出したい場合、FILTER関数とREGEXTEST関数を組み合わせます。
例えば商品名が「もも」または「ぶどう」の行を抽出したい場合、数式は以下のようになります。
例:=FILTER(A2:B5,REGEXTEST(B2:B5,"もも|ぶどう"))
REGEXTEST関数は、指定したテキストが正規表現に一致するかどうかを判定する関数です。|
は「または」を表し、いずれかに一致した場合にTRUE
を返します。
REGEXTEST関数の引数:(テキスト, 正規表現)
3つ以上の単一における複数条件(OR)にする場合
条件が3つ以上になっても、REGEXTESTの正規表現に|
で区切りながら条件を記入していきます。
例:=FILTER(A2:B5,REGEXTEST(B2:B5,"もも|ぶどう|りんご"))
複数列における複数条件(OR)の場合

複数列における、複数の条件のいずれかを満たす行を抽出したい場合、FILTER関数に指定する複数の条件を、+
(プラス)でつないでいきます。
例えば「産地が『長野』」または「商品名が『りんご』」の行を抽出したい場合、数式は以下のようになります。
例:=FILTER(A2:B5,(A2:A5="長野")+(B2:B5="りんご"))
3つ以上の複数列における複数条件(OR)にする場合

条件が3つ以上になっても、同様にカッコで囲んだ条件式を+
でつないでいきます。
例:=FILTER(A5:A8,(B5:B8="長野")+(C5:C8="ばなな")+(D5:D8>=400))