ADVERTISEMENT

【Googleスプレッドシート】検索と置換で正規表現を使う!パターンマッチの活用

【Googleスプレッドシート】検索と置換で正規表現を使う!パターンマッチの活用
🛡️ 超解決

Googleスプレッドシートでデータを整理するとき、特定のパターンに一致するセルを検索したり、一括で置換したい場面は多いです。通常の検索では文字列を完全一致で探すしかありませんが、正規表現を使えば複雑なパターンマッチが可能になります。この記事では、スプレッドシートの検索と置換機能で正規表現を活用する方法を、具体例を交えて詳しく解説します。

正規表現は一見難しそうに思えますが、基本パターンを覚えれば日々のデータ処理が格段に効率化します。メールアドレスだけを抜き出したい、電話番号の形式を統一したい、重複データを特定したい――そんな作業を数秒で完了できるようになります。

【要点】正規表現を使った検索と置換でパターンマッチを活用する

  • 「編集」→「検索と置換」で正規表現を有効化: 検索ダイアログの「正規表現を使用する」にチェックを入れるだけで、高度なパターン検索が可能になります。
  • メタ文字で柔軟なパターンを指定: 「.」「*」「+」「[]」などのメタ文字を使って、任意の文字や繰り返し、文字クラスを指定します。
  • 置換時にグループ参照が使える: 検索パターンで括弧でグループ化した部分を、置換文字列で「$1」「$2」などとして参照できます。

ADVERTISEMENT

正規表現がスプレッドシートでできること

正規表現は、文字列のパターンを記述するための記法です。スプレッドシートの「検索と置換」で正規表現を使うと、単純な文字列一致では難しい高度な検索や置換が実現します。例えば、数字だけのセルを探す、特定の書式のメールアドレスを抽出する、空白や改行を除去するといった処理を、一つのパターンで指定できます。

スプレッドシートで利用できる正規表現のエンジンは、RE2というライブラリに基づいています。そのため、一部の高度な機能(後方参照や先読み・後読みなど)は使えませんが、日常的なデータ整形には十分な機能が揃っています。

検索と置換で正規表現を使う手順

以下では、実際の操作手順をステップごとに説明します。例として、電話番号の形式を「090-xxxx-xxxx」から「090xxxxxxxx」に変換するケースを使います。

  1. 検索と置換ダイアログを開く
    メニューバーから「編集」をクリックし、「検索と置換」を選択します。ショートカットキーは「Ctrl+H」(Windows)または「Command+Shift+H」(Mac)です。
  2. 正規表現を使用するにチェックを入れる
    ダイアログ下部にある「正規表現を使用する」のチェックボックスをオンにします。これで検索文字列が正規表現として解釈されるようになります。
  3. 検索パターンを入力する
    「検索」フィールドに正規表現パターンを入力します。電話番号の例では、「(\d{3})-(\d{4})-(\d{4})」と入力します。これは3桁-4桁-4桁の数字にマッチします。
  4. 置換後の文字列を入力する
    「置換後の文字列」フィールドに、変換後の形式を指定します。グループ参照を使い、「$1$2$3」と入力します。これでハイフンが除去され、数字だけが連結されます。
  5. 実行する
    「すべて置換」ボタンをクリックすると、シート内の該当するすべてのセルが一括で置換されます。範囲を限定したい場合は、事前にセル範囲を選択しておきます。

よく使う正規表現パターンと実例

ここでは、スプレッドシートの検索置換で特に便利なパターンをいくつか紹介します。パターンはすべてRE2準拠です。

数字のみを検索する

「\d+」と入力すると、1つ以上の連続した数字にマッチします。例えば、セル内の数字部分だけを抽出したい場合に使います。置換時に空文字にすれば数字だけ削除できます。

メールアドレスを抽出する

「[\w.-]+@[\w.-]+\.\w+」というパターンで、一般的なメールアドレス形式にマッチします。検索して該当セルを確認したり、置換で別の文字列に変更できます。

空白や改行を除去する

「\s」は空白文字(半角スペース、タブ、改行など)にマッチします。「\s+」とすれば連続する空白を1つにまとめられます。置換文字列を空にすればすべての空白を削除できます。

特定の文字で始まる行を検索する

「^京都」と入力すると、セルの先頭が「京都」で始まるものにマッチします。同様に「終わり$」で末尾が「終わり」のセルを検索できます。

ADVERTISEMENT

正規表現を使う際の注意点と失敗例

エスケープが必要な文字がある

正規表現では「.」「*」「+」「?」「[」「]」「(」「)」「{」「}」「^」「$」「|」「\」などが特別な意味を持ちます。これらの文字をそのまま検索したい場合は、前にバックスラッシュを付けてエスケープします。例えば、ピリオドを検索するには「\.」と入力します。

先読み・後読みは使えない

スプレッドシートの正規表現エンジンRE2では、先読み((?=…))や後読み((?<=...))はサポートされていません。複雑な条件で位置を指定したい場合は、複数の置換を組み合わせる必要があります。

大文字小文字の区別

デフォルトでは大文字小文字を区別しません。区別したい場合は、パターン内で「(?-i)」を指定するか、あるいは正規表現のモード切替を使います。ただし、RE2では大文字小文字を区別する方法が限られるため、必要に応じて事前にデータを統一しておくとよいでしょう。

パターンが重くなりすぎないようにする

複雑なパターンや大量のデータに対して正規表現を使うと、処理が遅くなることがあります。特に「.*」のような貪欲なマッチや、バックトラックの多いパターンは避けたほうが無難です。可能なら、具体的な文字クラスや量指定子を使うことで高速化できます。

正規表現検索と通常の検索の比較

比較項目 通常の検索 正規表現検索
検索の柔軟性 固定文字列のみ一致 パターン指定で複数パターンに一致可能
ワイルドカード 「?」と「*」のみ使用可能 豊富なメタ文字で細かく指定可能
置換の機能 単純な文字列置換のみ グループ参照で柔軟な置換が可能
大文字小文字の区別 設定で切替可能 デフォルトで区別なし、一部制限あり
処理速度 非常に高速 パターンによっては遅くなる場合あり

まとめ

この記事では、Googleスプレッドシートの検索と置換で正規表現を使う方法を解説しました。正規表現を有効にすることで、数字だけの検索やメールアドレスの抽出、電話番号の整形など、これまで手作業で行っていた処理を一瞬で完了できます。基本パターンは「.」「*」「+」「[]」「()」など数えるほどで、まずは「\d」「\s」「^」「$」から試してみるとよいでしょう。また、置換時に「$1」などのグループ参照を使えば、抽出と加工を同時に行えます。ぜひ実際のデータでパターンマッチを活用し、スプレッドシート作業の効率を大幅に向上させてください。

さらに高度な処理が必要な場合は、REGEXEXTRACT関数やREGEXREPLACE関数を併用する方法もあります。これらについては別の記事で詳しく紹介します。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

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