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