REGEXMATCHレジエックスマッチ】文字列が複数のキーワードを含むかチェックする方法

スプレッドシートで「複数キーワードに該当するか」をチェックしたい

Googleスプレッドシートを使っていると、こんなニーズに直面することはありませんか?

この文章の中に “無料” や “割引” が含まれていたら、セルに『該当』と表示させたい

文章の中に特定のキーワードが含まれているかどうかをチェックしたいシーンはよくあります。

そんなとき思いつくのが IFOR を組み合わせた方法ですが…

=IF(OR(A1="無料", A1="割引", A1="特典"), "該当", "なし")

この方法だと、「完全一致」しか見られず、文章の一部に含まれているだけでは引っかかりません。
さらに、キーワードが増えると関数がどんどん長く・読みにくくなるという問題もあります。

IF + REGEXMATCH で一発判定!

そんな悩みを解決するのが、IF 関数と REGEXMATCH 関数の組み合わせです。

=IF(REGEXMATCH(A1, "条件A|条件B|条件C"), "該当", "なし")

この1行で、A1のテキストに 「条件A」または「条件B」または「条件C」 のどれかが含まれていれば「該当」、どれも含まれていなければ「なし」と判定できます。

注目ポイント

  • REGEXMATCH正規表現(Regex) を使った検索機能。文字列の一部がパターンにマッチするかどうかをチェックできます
  • "|"(パイプ記号)は OR(または) を意味し、複数のキーワードを一括で指定可能
  • IF を使うことで、該当/非該当など、条件に応じた結果を表示できる

実用例:テキストに特定の単語が含まれているか

たとえば、A列に広告文がズラリと並んでいて、そこに「無料」「特典」「割引」などが含まれているかどうかをチェックしたいとします。

=IF(REGEXMATCH(A1, "無料|特典|割引"), "該当", "なし")

この数式をコピーしていくだけで、各文章がキーワードに該当するかを瞬時に判定できます。
もちろん、行数が多くても ArrayFormula などと組み合わせれば自動化可能です。

よくある用途例

  • 広告文チェック(NGワード検出)
  • 問い合わせメールの自動振り分け
  • 商品説明やレビュー内の特定ワード抽出
  • 顧客対応テンプレートの品質管理 など

REGEXMATCH で使えるその他のテクニック

REGEXMATCH は正規表現を使えるため、単語の一致だけでなく、もう少し柔軟な条件でもマッチさせることができます。

数字や英字パターンのチェックもできる

例えば

  • 数字を含むか? → [0-9]
  • 英字を含むか? → [A-Za-z]
  • 特定の接頭語に一致 → ^無料(「無料」で始まる)

価格が含まれているかをチェックしたいなら以下のような使い方ができます。

=IF(REGEXMATCH(A1, "[0-9]+円"), "価格あり", "価格なし")

大文字・小文字を無視したいときは?

英単語を含むチェックなどで、「Free」「free」どちらでもマッチさせたいというケースもありますよね。
そんなときは、正規表現の前に (?i) を付ければOKです。

=IF(REGEXMATCH(A1, "(?i)free|discount|campaign"), "match", "none")

このように、大文字・小文字の違いを気にせず判定できます。

まとめ

複数のキーワードを含むかどうかをチェックする関数、以前は IFOR のネストで苦労していた人も多いと思いますが、REGEXMATCH を使えば驚くほど簡潔に、かつ柔軟に書けるようになります。

ポイント解説
REGEXMATCH正規表現による文字列判定
|パイプ。OR条件と同様
(?i)大文字・小文字を区別しない

広告チェックや顧客対応、フォームの自動処理、レビュー管理など、あらゆる場面で役立つテクニックです。
「こういうのって関数でできるのかな?」と感じたときこそ、正規表現の出番かもしれません。


この記事を書いた人

今村 壱生(IMAMURA Issei)詳細はこちら
29歳のエンジニア兼マーケター。Re PROViSTAとして、生成AI、Webアプリ開発、業務自動化、BI導入、Web広告運用など、幅広い分野で活動中。システム構築では、要件定義から設計・実装・運用まで一貫して対応。また、小説執筆も手がけるなど、クリエイティブな一面も持つ。