無料でExcel並み!Google スプレッドシートの使い方

ひとつのセルに入力された住所から都道府県名を取り出すには? スプシで「正規表現」を使ってみよう

正規表現を使った文字列操作が便利

 今回はスプレッドシートで文字列操作をする際に試してほしい「正規表現」を紹介します。正規表現とは、任意の文字列を特定の形式で表現するための記述方法といえます。難しそうと思わずに一回使ってみてください。便利さがわかると思います。

 ここでは簡単な例として、住所を処理してみます。正規表現との組み合わせに使えるREGEXEXTRACT関数もあわせて紹介します。

文字列のパターンを探る

 はじめに正規表現の基本である「[]」「.」「+」を紹介します。「[]」は、[]でくくった文字列を表します。例えば、「[都道府県]」とすれば「都」「道」「府」「県」のいずれかに一致する文字列を意味します。指定した正規表現に基づいて文字列を抽出できるREGEXEXTRACT関数を使って、実際に試してみましょう。

 REGEXEXTRACT関数の構文は『=REGEXEXTRACT(テキスト, 正規表現)』となります。[テキスト]には処理対象のセルを指定すればOKです。[正規表現]はこれから試していきます。

「=REGEXEXTRACT(A1, "[都道府県]")」と入力する
「都」と抽出された

 正規表現として指定した[都道府県]に一致する「都」が抽出されました。なお正規表現を指定するときは「"」でくくってください。この場合は、「"[都道府県]"」です。

 「東京」の部分も抽出したいですよね。任意の1文字を表す「.」を組み合わせます。「..」で任意の2文字を表せるので、「"..[都道府県]"」と指定します。

「=REGEXEXTRACT(A1, "..[都道府県]")」と入力する
「東京都」と抽出された

 では「和歌山県」ならどうでしょうか? 「"...[都道府県]"」と指定するのはイマイチです。繰り返しを表す「+」を使って、「".+[都道府県]"」と指定します。

「=REGEXEXTRACT(A1, ".+[都道府県]")」と入力する
「和歌山県」と抽出された

 「.+」は、任意の1文字を繰り返すという意味なので、「東京」でも「和歌山」でも一致することになります。「[都道府県]」と組み合わせれば、「任意の文字」+「都」「道」「府」「県」を抽出できるパターンと考えられます。ほかの住所でも試してみましょう。

「=REGEXEXTRACT(A1, ".+[都道府県]")」と入力する
都道府県名が抽出された。関数式をコピーしておく

都道府県名を除いた住所を取り出すには?

 都道府県名を除いた住所を取り出したいときは、『検索可能な文字列から後ろをすべて抽出する』と考えます。都道府県名を含む住所で、検索可能な文字列といえば、「都」「道」「府」「県」ですね。先ほどの「[都道府県]」を応用して、『=REGEXEXTRACT(A1, "[都道府県](.+)")』と入力します。

 「.+」は任意の1文字を繰り返すという意味でした。つまり文字列すべてが一致します。手前に[都道府県]と指定しているので、「都」「道」「府」「県」より後ろすべての文字列という意味です。「()」で囲むと、該当箇所のみを抽出可能になるので、都道府県名より後ろの住所を抽出できます。

「=REGEXEXTRACT(A1, "[都道府県](.+)")」と入力する
都道府県名より後ろの住所が抽出された