REGEXEXTRACTの使い方!複数指定する方法も解説

Google スプレッドシートの関数には、データの操作や抽出に便利なものが多数あります。その中でも、正規表現を使って文字列から特定の部分を抽出することができる REGEXEXTRACT 関数は非常に強力です。本記事では、REGEXEXTRACT 関数の基本的な使い方から、複数のパターンを指定する方法までを詳細に解説します。

REGEXEXTRACT 関数の基本

基本的な構文

REGEXEXTRACT 関数は、文字列から正規表現に一致する部分を抽出します。基本的な構文は以下の通りです:

scss

=REGEXEXTRACT(text, regular_expression)
  • text: 対象となる文字列
  • regular_expression: 抽出したい部分を定義する正規表現パターン

使用例

例えば、以下のような文から数字を抽出したい場合:

arduino

=REGEXEXTRACT("私の一番好きな番号は 241 ですが、友だちの好きな番号は 17 です", "\d+")

この関数は、最初に一致する数字の部分文字列「241」を抽出します 。

REGEXEXTRACT 関数の応用例

住所の分割

住所データから郵便番号や都道府県、市区町村を抽出する場合を考えます。例えば、以下のような住所から郵便番号を抽出する場合:

arduino

=REGEXEXTRACT("〒123-4567 東京都千代田区千代田1-1", "〒\d{3}-\d{4}")

この関数は、郵便番号「〒123-4567」を抽出します 。

メールアドレスの抽出

テキストからメールアドレスを抽出する場合は、以下のようにします:

arduino

=REGEXEXTRACT("連絡先: user@example.com にメールしてください", "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}")

この関数は、「user@example.com」を抽出します 。

複数指定する方法

REGEXEXTRACT 関数では、通常一つのパターンしか指定できませんが、複数の部分を抽出するための工夫も可能です。

キャプチャグループを使った抽出

キャプチャグループを使うことで、複数の部分を一度に抽出することができます。例えば、日付形式の文字列から年、月、日を抽出する場合:

scss

=ARRAYFORMULA(REGEXEXTRACT(A1:A, "(\\d{4})-(\\d{2})-(\\d{2})"))

この関数は、年、月、日をそれぞれ抽出し、配列として返します 。

配列数式との併用

複数の正規表現を組み合わせて使うことで、複数の値を同時に抽出できます。例えば、以下のように複数のパターンを組み合わせて使うことが可能です:

css

=ARRAYFORMULA({
REGEXEXTRACT(A1:A, "パターン1"),
REGEXEXTRACT(A1:A, "パターン2"),
REGEXEXTRACT(A1:A, "パターン3")
})

この方法を使うことで、スプレッドシートの複数の列に渡って異なるパターンの抽出結果を表示することができます。

実践例

フォームの入力データから特定の情報を抽出

例えば、フォームから収集したデータから電話番号とメールアドレスを抽出する場合、以下のように設定します:

less

=ARRAYFORMULA({
REGEXEXTRACT(B2:B, "\d{2,4}-\d{2,4}-\d{4}"), // 電話番号
REGEXEXTRACT(B2:B, "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}") // メールアドレス
})

これにより、入力されたデータから電話番号とメールアドレスをそれぞれ抽出し、別々の列に表示できます。

まとめ

REGEXEXTRACT 関数は、Google スプレッドシートで強力なデータ抽出ツールです。正規表現を駆使することで、特定のパターンに一致する文字列を効率的に抽出できます。複数のパターンを指定する方法や応用例を参考にして、日常の業務やデータ処理に役立ててください。

コメント