【Googleスプレッドシート】特定の文字列を抽出する方法

この記事では、GoogleスプレッドシートのREGEXEXTRACT関数を使って、テキストから特定の文字列を抽出する方法をご紹介します。特定の文字より前を抽出する方法や、特定の文字以降を抽出する方法についても解説しているので、ぜひ参考にしてみてください。

スポンサーリンク

REGEXEXTRACT関数の使い方

REGEXEXTRACT関数は、正規表現と最初に一致する部分文字列を抽出します。

正規表現とは、あいまいな文字列を検索するための手法の 1 つで、メタキャラクタ(メタ文字)という記号を組み合わせて、文字列のパターンを表現します。

REGEXEXTRACT関数の引数:(テキスト, 正規表現)

スポンサーリンク

特定の文字より前を抽出する方法

スプレッドシートで特定の文字列より前を抽出する方法

特定の文字より前の部分を抽出するには、任意の文字の 0 回以上の繰り返しを表す .* を使用し、特定の文字をその後に記述します。このとき抽出したい部分を キャプチャグループ () で囲むのがポイントです。

例えば、メールアドレスから「@」より前の部分を抽出する場合、REGEXEXTRACT関数は以下のようになります。

=REGEXEXTRACT(メールアドレスが入力されたセル, "(.*)@")

.任意の1文字
*直前のパターンの0回以上の繰り返し(最長一致)
.*0文字以上の任意の文字列(最長一致)
( )キャプチャグループ
スプレッドシートで特定の文字列より前を抽出する方法

この数式を適用すると、以下の結果が得られます。

apple@gmailapple

orange@gmailorange

banana@gmailbanana

このように、文字数に関わらず「@」マークより前の部分だけを抽出できます。

スプレッドシートで特定の文字列より前を抽出する方法

特定の文字が複数ある場合は、文字クラス[]を使います。

例えば都道府県(都、道、府、県)のいずれかの文字より前の部分を抽出する場合、REGEXEXTRACT関数は以下のようになります。

=REGEXEXTRACT(住所が入力されたセル,"..+?[都道府県]")

.任意の1文字
+直前のパターンの1回以上の繰り返し(最長一致)
+?直前のパターンの1回以上の繰り返し(最短一致)
..+?2文字以上の任意の文字列(最短一致)
[ ][ ] 内のいずれかの1文字
スプレッドシートで特定の文字列より前を抽出する方法

この数式を適用すると、例えば以下のような結果が得られます。

  • 京都府京都市若宮町1-2京都府
  • 東京都八王子市暁町3-4-5東京都
  • 鹿児島県霧島市国分中央6-7鹿児島県

特定の文字(都、道、府、県)を含めて抽出する場合、キャプチャグループ () は不要です。

スポンサーリンク

特定の文字以降を抽出する方法

スプレッドシートで特定の文字以降を抽出する方法

特定の文字以降の部分を抽出するには、任意の文字の 0 回以上の繰り返しを表す .* を使用し、特定の文字をその前に記述します。このとき抽出したい部分を キャプチャグループ () で囲むのがポイントです。

例えば、メールアドレスから「@」より後ろの部分を抽出する場合、REGEXEXTRACT関数は以下のようになります。

=REGEXEXTRACT(メールアドレスが入力されたセル, "@(.*)")

.任意の1文字
*直前のパターンの0回以上の繰り返し(最長一致)
.*0文字以上の任意の文字列(最長一致)
( )キャプチャグループ
スプレッドシートで特定の文字以降を抽出する方法

この数式を適用すると、以下の結果が得られます。

apple@gmailgmail

orange@gmailgmail

banana@gmailgmail

このように、文字数に関わらず「@」マークより後ろの部分だけを抽出できます。

スプレッドシートで特定の文字以降を抽出する方法

特定の文字が複数ある場合は、文字クラス[]を使います。

例えば都道府県(都、道、府、県)のいずれかの文字より後ろの部分を抽出する場合、REGEXEXTRACT関数は以下のようになります。

=REGEXEXTRACT(住所が入力されたセル, "..+?[都道府県](.*)")

.任意の1文字
+直前のパターンの1回以上の繰り返し(最長一致)
+?直前のパターンの1回以上の繰り返し(最短一致)
..+?2文字以上の任意の文字列(最短一致)
[ ][ ] 内のいずれかの1文字
( )キャプチャグループ
スプレッドシートで特定の文字以降を抽出する方法

この数式を適用すると、例えば以下のような結果が得られます。

  • 京都府京都市若宮町1-2若宮町1-2
  • 東京都八王子市暁町3-4-5八王子市暁町3-4-5
  • 鹿児島県霧島市国分中央6-7霧島市国分中央6-7

キャプチャグループ () を使用するとこで、特定の文字より後ろの部分だけを抽出できます。

スポンサーリンク

特定の文字列を抽出する方法

スプレッドシートで特定文字列を抽出する方法

特定の文字列そのものを抽出したい場合は、抽出したい文字列を () (キャプチャグループ)内に直接記述します。

例えば、テキストのランダムな位置に含まれる「フルーツ」という文字列を抽出する場合、REGEXEXTRACT関数は以下のようになります。

=REGEXEXTRACT(テキストが入力されたセル, "(フルーツ)")

( )キャプチャグループ
スプレッドシートで特定文字列を抽出する方法

この数式を適用すると、例えば以下のような結果が得られます。

  • 青森フルーツりんごフルーツ
  • みかん和歌山フルーツフルーツ
  • フルーツもも岡山フルーツ

() (キャプチャグループ)で囲むことで、指定した「特定の文字列」だけを抽出できます。

スプレッドシートで特定文字列を抽出する方法

特定の文字が複数ある場合は、OR | を使います。抽出したい複数の文字列を | で区切り、それらを () (キャプチャグループ)で囲みます。

例えばテキストのランダムな位置に含まれる「フルーツ」または「ヤサイ」という文字列を抽出する場合、REGEXEXTRACT関数は以下のようになります。

=REGEXEXTRACT(テキストが入力されたセル, "(フルーツ|ヤサイ)")

( )キャプチャグループ
|OR(または)

この数式を使うと、例えば以下の結果が得られます。

  • 青森フルーツりんごフルーツ
  • とれたてヤサイ詰め合わせヤサイ
  • フルーツとお花のセットフルーツ

このように、()| を組み合わせることで、指定した複数の文字列のいずれかを抽出できます。

スポンサーリンク

特定の文字から特定の文字まで抽出する方法

スプレッドシートで特定の文字から特定の文字までを抽出する方法

特定の文字と特定の文字の間の部分を抽出したい場合、 (.*) (キャプチャグループ)の前後に特定の文字を記述します。

例えば、ハイフン - からハイフン -までの文字列を抽出する場合、REGEXEXTRACT関数は以下のようになります。

=REGEXEXTRACT(テキストが入力されたセル, "-(.*)-")

.任意の1文字
*直前のパターンの0回以上の繰り返し(最長一致)
.*0文字以上の任意の文字列(最長一致)
( )キャプチャグループ
タイトルとURLをコピーしました