ADVERTISEMENT

【Googleスプレッドシート】REGEXMATCH関数で文字列の一致を判定!条件付き書式との連携

【Googleスプレッドシート】REGEXMATCH関数で文字列の一致を判定!条件付き書式との連携
🛡️ 超解決

Googleスプレッドシートで特定のパターンに一致する文字列を探したいとき、通常の関数では部分一致の判定が難しいことがあります。REGEXMATCH関数を使えば、正規表現による柔軟な文字列一致判定をセル単位で行えます。この記事では、REGEXMATCH関数の基本的な使い方から、条件付き書式と組み合わせて視覚的に強調表示する方法までを解説します。具体的な構文と使用例を交えて、実務で即活用できる知識を身につけましょう。

【要点】REGEXMATCH関数を使えば正規表現で文字列パターンを判定し、条件付き書式と連携して自動的にセルを色分けできます。

  • =REGEXMATCH(テキスト, 正規表現): 指定した文字列が正規表現パターンに一致するかどうかをTRUE/FALSEで返します。
  • 条件付き書式のカスタム数式にREGEXMATCHを設定: シート全体の該当セルをハイライト表示できます。
  • 部分一致や前方一致・後方一致の指定: ^や$などのアンカーを使い分けて柔軟に判定します。

ADVERTISEMENT

REGEXMATCH関数の基本と正規表現の仕組み

REGEXMATCH関数は、指定した文字列が正規表現パターンに一致するかどうかを判定する関数です。構文は「=REGEXMATCH(テキスト, 正規表現)」で、テキストにはセル参照や文字列を、正規表現にはパターンを指定します。戻り値はTRUEまたはFALSEのブール値です。正規表現では、ピリオド(.)が任意の1文字、アスタリスク(*)が直前の文字の0回以上の繰り返し、プラス(+)が1回以上の繰り返し、キャレット(^)が文字列の先頭、ドル記号($)が末尾を表します。例えば「^abc」は「abc」で始まる文字列、「xyz$」は「xyz」で終わる文字列にマッチします。角括弧([])を使えば文字クラスを指定でき、「[0-9]」は数字、「[A-Za-z]」は英字にマッチします。

REGEXMATCH関数の基本的な使い方

ここでは、REGEXMATCH関数を単独で使う基本的な手順を説明します。例として、商品コードが「ABC」で始まるかどうかを判定します。

  1. 判定したいセルを準備する
    まず、判定対象の文字列が入ったセルを用意します。ここではA2セルに「ABC-123」と入力します。
  2. REGEXMATCH関数を入力する
    B2セルに「=REGEXMATCH(A2, “^ABC”)」と入力します。ダブルクォーテーションで正規表現を囲む点に注意します。
  3. 結果を確認する
    セルには「TRUE」と表示されます。A2が「ABC」で始まるためです。もし「DEF-123」なら「FALSE」になります。

部分一致を判定するには、正規表現の前後に「.*」を付けます。例えば「.*123$」とすれば「123」で終わるすべての文字列にマッチします。また、大文字小文字を区別しない場合は、正規表現の先頭に「(?i)」を追加します。

条件付き書式とREGEXMATCHを連携する手順

REGEXMATCHの真価は、条件付き書式と組み合わせて特定パターンに一致するセルを自動で色分けできる点です。例えば、メールアドレスが正しい形式かをチェックして、不正なものを赤く塗りつぶす方法を説明します。

  1. 条件付き書式を適用する範囲を選択する
    メールアドレスが入力されているセル範囲(例:A2:A100)を選択します。
  2. 条件付き書式ルールを追加する
    メニューから「表示形式」→「条件付き書式」を開き、「ルールを追加」をクリックします。
  3. カスタム数式を設定する
    「セルの値が次の条件を満たす場合」のプルダウンから「カスタム数式」を選び、入力欄に「=NOT(REGEXMATCH(A2, “^[\\w.+-]+@[\\w-]+\\.[\\w.]+$”))」と入力します。この正規表現は簡易的なメールアドレスのパターンです。
  4. 書式スタイルを設定する
    「背景色」を赤などに設定し、「完了」をクリックします。

これで、正しいメールアドレス形式でないセルが赤く表示されるようになります。カスタム数式では、最初のセル(A2)を基準に相対参照で記述する点が重要です。範囲内の各セルに対して自動的に適用されます。

ADVERTISEMENT

よくある間違いと注意点

大文字小文字を区別したい場合

REGEXMATCHはデフォルトで大文字小文字を区別します。区別したくない場合は、正規表現の先頭に「(?i)」を付けます。例えば「(?i)apple」とすれば「Apple」「APPLE」にマッチします。

空文字列にマッチしてしまう

正規表現「.*」は空文字列にもマッチします。そのため、何も入力されていないセルにもTRUEを返してしまいます。空セルを除外するには、あらかじめIF関数で空チェックを行うか、正規表現を「.+」にして1文字以上に限定します。

特殊文字のエスケープ

正規表現で特別な意味を持つ文字(. * + ? ^ $ [ ] \)などを文字として扱いたい場合は、バックスラッシュ(\)でエスケープします。例えば、ピリオドにマッチさせるには「\.」と書きます。Googleスプレッドシートの数式内では、バックスラッシュをダブルクォーテーション内で表記する際に、もう一つバックスラッシュを重ねる必要があります(例:「\\.」)。

REGEXMATCHはセルごとの判定

REGEXMATCHは1つのセル単体に対して判定します。複数セルの値を結合してから判定したい場合は、事前にCONCATENATEや「&」で結合してから使います。また、範囲全体に一度に適用するにはARRAYFORMULAと組み合わせます。

他の関数との比較

関数 内容 戻り値 用途
REGEXMATCH 正規表現による一致判定 TRUE/FALSE 複雑なパターンマッチ
SEARCH 文字列の位置を検索(大文字小文字区別なし) 数字(見つかった位置) 単純な部分一致検索
IF 条件分岐 指定した値 条件に応じた値の切り替え
VLOOKUP 縦方向の検索 対応する値 表からデータを取得

REGEXMATCHはパターンマッチに特化しており、他の関数では難しい複雑な条件を柔軟に判定できます。条件付き書式との組み合わせで、データの視覚的なチェックにも便利です。

まとめ

REGEXMATCH関数を使えば、正規表現による高度な文字列一致判定をGoogleスプレッドシート上で実現できます。条件付き書式と連携することで、特定のパターンに一致するセルを自動的にハイライト表示できるため、データの品質チェックやグルーピングに役立ちます。基本構文を覚えたら、正規表現のパターンを少しずつ複雑にして、メールアドレスや電話番号の形式チェックなどに応用してみましょう。特に「(?i)」による大文字小文字の区別や、特殊文字のエスケープルールを押さえておくと、実務でスムーズに使えます。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。