LoginSignup
5
1

More than 1 year has passed since last update.

【Excel関数】FIND関数を用いて住所から市区町村データを抜き出す

Posted at

これはなに

スプレッドシートでFIND関数を用いて、住所から市区町村データをカラムとして抜き出す方法をまとめます。

背景

下記、東京都のオープンデータを用いて、Googleデータポータルで遊びたい。

市区町村別の無料Wi-Fiのアクセススポット数を可視化したいが、
市区町村のカラムが空データのため、住所から市区町村をカラムとして抜き出したい。

STEP①:まず、住所から都道府県+市区町村 を抜き出す

LEFT関数 / FIND関数 / IFERROR関数を用います。

スプレッドシート関数_1.png

▼実際の数式

=left(E2,IFERROR(FIND("市",E2),IFERROR(FIND("区",E2),IFERROR(FIND("町",E2),IFERROR(FIND("村",E2),0)))))
※IFEROR関数じゃなくてIF関数を使ってもいいと思います。

セルE2の中から「市」OR「区」OR「町」OR「村」という文字列を見つけたら、その左側の文字列を引っ張ってきてね

という指示文になっています。

STEP②:STEP①で出したデータから市区町村 を抜き出す

RIGHT関数 / FIND関数 / IFERROR関数を用います。

スプレッドシート関数_2.png

▼実際の数式

=RIGHT(K2,IFERROR(FIND("都",K2),0))
※IFEROR関数じゃなくてIF関数を使ってもいいと思います。

セルK2の中から「都」という文字列を見つけたら、その右側の文字列を引っ張ってきてね

という指示文になっています。

使用した関数一覧

関数 関数書式 意味
LEFT関数 LEFT(文字列,文字数[任意]) 指定した文字列の先頭から部分文字列を返します。
RIGHT関数 RIGHT(文字列,文字数[任意]) 指定した文字列の末尾から部分文字列を返します。
FIND関数 FIND(検索文字列,検索対象のテキスト,開始位置[任意]) 特定の文字列がテキスト内で最初に現れる位置を返します。文字列が見つからない場合は「#VALUE!」を返します。
IFERROR関数 IFERROR(値,エラー値[任意]) エラー値でない場合は 1 番目の引数を返します。エラー値である場合は 2 番目の引数を返します(指定した場合)。2 番目の引数を指定していない場合は空白が返されます。

引用元:Googleスプレッドシート

まとめ

今回の方法は筆者がよくやる方法を書きましたが、2STEPに分かれるのでちょっと綺麗じゃない‥。
もっといい方法があれば教えていただけると幸いです:pray_tone1:

Excelの「区切り位置」、スプレッドシートの「テキストを列に分割」の条件を設定する際、
複数条件を設定できればよいのですがが、調べてもやり方が出てこなかった‥(出来ないのかなぁ?:thinking:

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1