Googleスプレッドシートで特定の文字を抽出したい

Googleスプレッドシートの表で様々なデータを管理していて、一つの文字列に色々な文字が入っている時に文字列の中から特定の文字を抽出したいと思ったことはありませんか?例えばアドレス帳から名前だけを抽出したい・メールアドレスだけを抽出したいというシーンもありますよね。
この場合は、特定の関数を使用することで特定の文字だけを抽出することができますよ。この記事では、Googleスプレッドシートで特定の文字を抽出する方法をご紹介していきます。
Googleスプレッドシートで特定の文字を抽出する方法
REGEXEXTRACT関数の使い方
特定の文字を抽出したい場合に便利な関数が「REGEXEXTRACT関数」です。REGEXEXTRACT構文は下記の通りとなります。
- =REGEXEXTRACT(テキスト, 正規表現)
「テキスト」部分はセルを参照させるか、”(ダブルクォーテーション)で対象の文字列を囲んで指定しましょう。
- =REGEXEXTRACT(A1, 正規表現)
- =REGEXEXTRACT("指定したい文字列", 正規表現)
「正規表現」は、検索する文字列を表す正規表現を”(ダブルクォーテーション)で囲んで指定する必要があります。正規表現とは、文字列のパターンを記号の組み合わせにより表現する方法です。Googleスプレッドシートにおいては「RE2構文」をサポートしており、指定した正規表現と一致する文字列がテキスト部分から抽出されるのです。正規表現の一部を下記に記します。
- .:任意の一文字
- //a/@href:0回以上の繰り返し
- +:1回以上の繰り返し
- ?:0回・1回の出現
- {n,m}:n回以上、m回以下の繰り返し
- ^●●:先頭に「●●」のある文字列
- ●●$:末尾に「●●」のある文字列
- [●]:「●」に一致する文字列、複数指定可能
実際に特定の文字を抽出してみる

それでは、REGEXEXTRACT関数を使用して特定の文字列の抽出を行ってみましょう。画像の例では、名前とメールアドレスを用意してみました。ここから名前のみの抽出とメールアドレスのみの抽出を行います。

このケースで名前を抽出する場合は、記号「<」の手前までになっています。ですので正規表現は「(.+)<」として括弧の前の文字を抽出するようにします。A1セルのアプリコットの名前だけを抽出する関数は「=REGEXEXTRACT(A1,"(.+)<")」になります。

このように、「アプリコット」だけを抽出することができました。次は、メールアドレスの部分だけを抽出してみましょう。

メールアドレスは括弧でくくられているため、正規表現は「<(,+)>」とします。A1セルのメールアドレスのみを抽出したい場合の関数は「=REGEXEXTRACT(A1,"<(.+)>")」となります。これで、メールアドレスの部分のみを抽出することができました。

しかし、毎回毎回1つずつ関数を入力して抽出するのは面倒ですよね。そこで、一つの関数だけで2つのセルに名前をメールアドレスを抽出してみましょう。A2セルのりんごから名前をメールアドレスの2つを抽出する場合の関数は「=REGEXEXTRACT(A2,"(.+)<(.+)>")」で複数の部分を指定しています。

このように、B2セルに名前が、C2セルにメールアドレスが抽出されました。関数と正規表現の使い方を覚えれば、このように簡単にGoogleスプレッドシートで特定の文字を抽出することができますよ。