これはなに
スプレッドシートでFIND関数を用いて、住所から市区町村データをカラムとして抜き出す方法をまとめます。
背景
下記、東京都のオープンデータを用いて、Googleデータポータルで遊びたい。
市区町村別の無料Wi-Fiのアクセススポット数を可視化したいが、
市区町村のカラムが空データのため、住所から市区町村をカラムとして抜き出したい。
STEP①:まず、住所から都道府県+市区町村
を抜き出す
LEFT関数 / FIND関数 / IFERROR関数を用います。
▼実際の数式
=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関数を用います。
▼実際の数式
=RIGHT(K2,IFERROR(FIND("都",K2),0))
※IFEROR関数じゃなくてIF関数を使ってもいいと思います。
セルK2の中から「都」という文字列を見つけたら、その右側の文字列を引っ張ってきてね
という指示文になっています。
使用した関数一覧
関数 | 関数書式 | 意味 |
---|---|---|
LEFT関数 | LEFT(文字列,文字数[任意]) | 指定した文字列の先頭から部分文字列を返します。 |
RIGHT関数 | RIGHT(文字列,文字数[任意]) | 指定した文字列の末尾から部分文字列を返します。 |
FIND関数 | FIND(検索文字列,検索対象のテキスト,開始位置[任意]) | 特定の文字列がテキスト内で最初に現れる位置を返します。文字列が見つからない場合は「#VALUE!」を返します。 |
IFERROR関数 | IFERROR(値,エラー値[任意]) | エラー値でない場合は 1 番目の引数を返します。エラー値である場合は 2 番目の引数を返します(指定した場合)。2 番目の引数を指定していない場合は空白が返されます。 |
引用元:Googleスプレッドシート
まとめ
今回の方法は筆者がよくやる方法を書きましたが、2STEPに分かれるのでちょっと綺麗じゃない‥。
もっといい方法があれば教えていただけると幸いです
Excelの「区切り位置」、スプレッドシートの「テキストを列に分割」の条件を設定する際、
複数条件を設定できればよいのですがが、調べてもやり方が出てこなかった‥(出来ないのかなぁ?)