
GoogleスプレッドシートのFILTER関数には、ワイルドカードを使うことができません。そこで今回はFILTER関数にREGEXMATCH関数を組み合わせて、部分一致するデータを抽出する方法を解説しているので、ぜひ参考にしてみてください。
FILTER関数の基本

指定した「範囲」から、「条件」と一致する行をすべて抽出します。
例:=FILTER(B2:B5,A2:A5="PDF")
FILTER関数の引数:(範囲, 条件1, [条件2, …])
💡 ポイント:FILTER関数にはワイルドカードを直接指定できないため、「〜を含む」といったあいまいな検索をしたい場合は、次に解説するREGEXMATCH関数を組み合わせます。
FILTER関数で部分一致を抽出する
【部分一致抽出の仕組み】
- REGEXMATCH関数:
- 指定した範囲内のテキストが正規表現(特定の文字パターン)と一致するかどうかを判定し、一致すれば「TRUE」、一致しなければ「FALSE」で返します。
- FILTER関数:
- REGEXMATCH関数が返す範囲の中から、「TRUE」の行だけを抽出します。
REGEXMATCH関数の引数:(テキスト, 正規表現)
「〜を含む」データを抽出する

REGEXMATCH関数の「正規表現」に、検索したい文字列をそのまま指定します。
例:=FILTER(B2:B5,REGEXMATCH(A2:A5,"PDF"))
「~で始まる」データを抽出する

検索したい文字の前に、前方一致を表す「^」を付けます。
例:=FILTER(B2:B5,REGEXMATCH(A2:A5,"^PDF"))
「~で終わる」データを抽出する

検索したい文字の後ろに、後方一致を表す「$」を付けます。
例:=FILTER(B2:B5,REGEXMATCH(A2:A5,"PDF$"))
「~を含まない」データを抽出する

否定を表すNOT関数を組み合わせることで、REGEXMATCH関数の結果を反転させます。
例:=FILTER(B2:B5,NOT(REGEXMATCH(A2:A5,"PDF")))
「AまたはB」のいずれかを含むデータを抽出する

検索したい文字の間に、または(OR)を表す「|」 を入れます。
例:=FILTER(B2:B6,REGEXMATCH(A2:A6,"PDF|TXT"))