(Gスプレッドシート)住所から都道府県を抽出する

 Googleスプレッドシートで、関数を使って住所から都道府県名を取り出す方法についてです。

  • REGEXEXTRACT関数やLEFT関数による方法で、住所から都道府県名を取り出すことができます。

手順

REGEXEXTRACT関数による方法

 正規表現にマッチする文字列を抽出するREGEXEXTRACT関数を使う例です。

f:id:accs2014:20190512171602p:plain:right:w500

 画像は実行結果です。
 B3:B15にさまざまな住所が記されています。ただしB12以降は「都道府県名が1文字」「都道府県名が4文字」「空白」「都道府県を含まない」の例です。
 これに対してC3セルに下記のような式を入力し、下方にコピーしています。

=REGEXEXTRACT(B3,"..+?[都道府県]")

 なお、ARRAYFORMULA関数を使って式のコピーを省略することもできます(次の例でも同様)。

LEFT関数による方法

 LEFT関数を用いて住所の冒頭から3文字ないし4文字を抽出します。
 Excelでも常用される方法です。

f:id:accs2014:20190512171554p:plain:right:w500

 画像は実行結果です。
 C3セルに下記のような式を入力し、下方にコピーしています。

=LEFT(B3,IF(MID(B3,4,1)="県",4,3))

 これもかなり簡略した考え方ですが、4文字目が「県」なら(神奈川県、和歌山県、鹿児島県に該当)4文字を、そうでなければ3文字を抽出するというわけです。
 REGEXEXTRACT関数の例と違ってC12以降がエラーになりません。
 なお「=LEFT(B3,3+(MID(B3,4,1)="県"))」とすればもっと短くできますが、端折りすぎの感もあります。

市区町村以下の抽出について

 都道府県名を抽出できればあとはSUBSTITUTE関数などを使って残りの部分(市区町村以下)を抽出することができますが、REGEXEXTRACT関数を使う場合は単独で分割して抽出することが可能です。詳しくは次の記事で触れています。

www.officeisyours.com