【エクセル】住所から都道府県だけ取り出したい
おはようございます、こんにちは。いたをです。
早速ですが質問からスタートしたいと思います。都道府県名から始まる住所のデータ項目から都道府県名を取り出したいと思うのですが、さてどうしたらいいでしょうか?
うーん。何かいい関数なかったかなぁ・・・。
あっ、いいのがありました。
LEFT関数。これを使えば、文字列の先頭(左端)から指定した数の文字を返してくれますね。
メモ!
LEFT関数
文字列の左側から指定した文字数を返します。
=LEFT(文字列,文字数)
北海道、東京都、大阪府、福岡県・・・。
左から3文字分取り出せばいいよね。ヨシ!これでOKっと。
残念でした!
都道府県名は3文字とは限りませんよ。
神奈川県、和歌山県、鹿児島県・・・。
あっ!
振り出しに戻っちゃいましたよね。
さてどうしたものか?
今日は関数を組み合わせて、都道府県名だけを取り出す方法について考えてみたいと思います。
▶ これまでのエクセル記事をまとめました。
サイトマップはこちらからどうぞ
1.数式をたてる前の準備をしよう
まずは数式をたてる前に、都道府県名がそれぞれ何文字あるのか、確認してみようじゃありませんか。
47都道府県の名前をすべて書き出してみました。
ここから分かることは、先ほどの神奈川県、和歌山県、鹿児島県の3県が4文字。その他は3文字だってこと。
つまり、先頭から3文字取り出せば、ほとんどの都道府県名を抜き出すことができますよ!ということですね。
また、4文字になるのは「県」だけのようです。
ということは、「県」の位置に着目すればよいこともわかります。
2.左から3文字取り出す式をつくる
ほとんどの都道府県名は3文字でしたので、まずは、住所の左から3文字取り出す式をつくります。
これは先程も出てきたLEFT関数を使えばよいですね。
都道府県名を表示するセルを選択し
=LEFT(A2,3)
と入力します。
住所のうち左から
3文字が取り出せましたね。
3.4文字目が「県」かどうかを調べて取り出す
でも、このままでは4文字の県に対応できていません。
ですのでLEFT関数の式に手を加えます。
どう考えるかというと、
4文字目が「県」なら左から4文字取り出し、そうでなかったら左から3文字取り出す。
ということ。
条件:住所の文字列をチェックして、4文字目に「県」が入っているかを確認する。
▶ 入ってたら:4文字抜き出す(LEFT関数で)
▶ 入ってなかったら:3文字抜き出す(LEFT関数で)
まずは4文字目に「県」が入っているかの確認ですが・・・
ここではMID関数を使いましょう。
MID関数は「文字列の指定した位置から、指定した文字数だけ取り出す」関数です。
メモ!
MID関数
文字列の指定した位置から指定した文字を返します。
=MID(文字列,取り出したい開始位置,取り出す文字数)
具体的に言うと・・・
住所の文字列から4文字目のところにある文字を1つだけ取り出してネ!ということをします。
次に条件分けです。
MID関数で抜き出した4文字目が「県」だったときはそのまま4文字抜き出す。そうではなかったら3文字抜き出す・・・。
条件分けをする関数は・・・、ご存知ですよね。
泣く子も黙る IF関数 。
メモ!
IF関数
論理式が真の時に真の場合を返し、論理式が偽の時に偽の場合を返します
=IF(論理式,[真の場合],[偽の場合])
もっと分かりやすく書くと
=IF([○○であるか、そうでないか],[✕✕の処理],[△△の処理])
具体的に書くと
=IF(MID(A2,4,1)="県",LEFT(A2,4),LEFT(A2,3))
さぁ、どうでしたか?
住所から都道府県だけ、ちゃんと取り出せました。
4.県名より後ろの市町村部分を表示させたい
これで終わりではないですよ。
県名より後ろの市町村部分も欲しいですよね。
今日はもう一つ関数をご紹介します。
文字列の文字数を数えてくれるLEN関数です。
メモ!
LEN 関数
文字列の文字数を返します。
=LEN(文字列)
この関数をどう使うの?
先程ご紹介したMID 関数は、文字列の指定された位置から指定された文字数の文字を取り出す関数でした。
=MID(文字列,取り出したい開始位置,取り出す文字数)
取り出す文字数の所を、文字列の文字数から「県」までの文字数4ないし3を引いてあげたらどうでしょう。そうすると自然と市町村が抜き出せますよね。
具体的には、
IF関数を使って、4文字目が県なら、C2セルの5文字以降を取り出せという式を作ります。それ以外は、C2セルの4文字以降を取り出せという式を作ります。
=IF(MID(A2,4,1)="県",MID(A2,5,LEN(A2)-4),MID(A2,4,LEN(A2)-3))
どうでしたか?
今度は市町村以降がちゃんと取り出せましたね。
まとめ
いかがでしたでしょうか。
今回は関数づくしでしたので、ちょっと大変だったかな。
上手~く組み合わせると、本当色々なことができるんですね。
ぜひお試しください。
それではまた。