
GoogleスプレッドシートのREGEXMATCH関数は、通常の検索では難しい「特定のパターンに合致する文字列」を検索するのに役立ちます。特に、COUNTIFやXLOOKUPでは対応できない大文字と小文字を区別した部分一致検索や、より複雑な条件でのデータ抽出を実現したい場合に使用されます。
REGEXMATCH関数とは
REGEXMATCH関数は、指定したテキストが正規表現で指定したパターンに合致するかどうかを判定し、結果をTRUEまたはFALSEで返します。このTRUEやFALSEという判定結果を、他の関数と組み合わせることで、複雑な条件でのデータ検索が実現できます

たとえば、A列のテキストが「pdf」という文字列と一致するかどうかを判定する場合、次の数式を使用します。
例:=REGEXMATCH(A2,"pdf")
このように、REGEXMATCH関数は大文字と小文字を区別するため、「PDF」ならFALSEを、「pdf」ならTRUEを返します。
REGEXMATCH関数の引数:(テキスト, 正規表現)
正規表現とは
正規表現は、あいまいな文字列を検索するための手法の 1 つで、メタキャラクタ(メタ文字)という記号を使って、文字列のパターンを表現します。
REGEXMATCH関数でよく使う正規表現
「~を含む」の判定

特定の文字列がセル内に部分的に含まれるかを判定したい場合は、正規表現の部分に検索したい文字列をそのまま指定します。
例:=REGEXMATCH(A2,"PDF")
「~で始まる」の判定

特定の文字列で始まるかどうかを判定したい場合は、指定する文字列の前に前方一致を表す^を付けます。
例:=REGEXMATCH(A2,"^PDF")
「~で終わる」の判定

特定の文字列で終わるかどうかを判定したい場合は、指定する文字列の後ろに後方一致を表す$を付けます。
例:=REGEXMATCH(A2,"PDF$")
「~を含まない」の判定

特定の文字列を含まないかどうかを判定したい場合は、正規表現の部分に「含む」条件を作成し、その結果をNOT関数で反転させます。
例:=NOT(REGEXMATCH(A2,"PDF"))
「~と完全に一致する」

特定の文字列と完全に一致するかどうかを判定したい場合は、^(前方一致)と$(後方一致)を、それぞれ文字の前後に付けます。
例:=REGEXMATCH(A2,"^PDF$")
REGEXMATCH関数で複数の文字列を扱う
ORの場合

複数の文字列のいずれかを含むかどうかを判定したい場合は、正規表現のパイプ記号 |で区切りながら文字列を記入します。
たとえば、A列のテキストが「ファイル」または「com」という文字列を含むかどうかを判定したい場合、数式は次のようになります。
例:=REGEXMATCH(A2,"ファイル|com")
ADNの場合

複数の文字列がすべて含まれるかどうかを判定したい場合は、AND関数を組み合わせます。
たとえば、A列のテキストに「PDF」と「com」の両方が含まれるかどうかを判定したい場合、数式は次のようになります。
例:=AND(REGEXMATCH(A2,"PDF"),REGEXMATCH(A2,"com"))
REGEXMATCH関数の具体的な使用例
特定のパターンと一致する文字列の検索や抽出

IF関数はワイルドカードに対応していませんが、REGEXMATCH関数と組み合わせることで、複雑な条件での文字列検索が可能になります。
たとえば、A2セルのテキストが「PDF」という文字列で始まるかどうかを判定したい場合、数式は次のようになります。
例:=IF(REGEXMATCH(A2,"^PDF"),"○","×")
IF関数の引数:(論理式, TRUE値, FALSE値)
大文字と小文字を区別しない関数での厳密な検索

XLOOKUP関数はデフォルトで大文字と小文字を区別しませんが、REGEXMATCH関数と組み合わせることで、厳密な検索が可能になります。
たとえば、A列のテキストの中から「pdf」という文字列を含むもの(大文字・小文字を区別して)を探し、その行の容量(B列)を抽出したい場合は、次の数式を使います。
例:=ArrayFormula(XLOOKUP(TRUE,REGEXMATCH(A2:A4,"pdf"),B2:B4))
XLOOKUP関数の引数:(検索キー, 検索範囲, 結果の範囲, [見つからない場合の値], [一致モード], [検索モード])
OR条件の数式をシンプルに記述する

OR条件(または)で使用する文字列の数が多い際に、正規表現の|を使用することで、数式をシンプルにできます。
たとえば、A列のテキストから、「XLS」または「PDF」または「SS」のセルをカウントする場合、数式は次のようになります。
例:=ArrayFormula(COUNTIF(REGEXMATCH(A2:A5,"XLS|PDF|SS"),TRUE))
COUNTIF関数の引数:(範囲, 条件)