先日、ある事情で大量に入力された住所から市町村以下を取り出してもらえないかとお願いお願いされました。これを手入力でやるにはさすがに時間がかかり過ぎるので、関数を使って住所から都道府県を取り出し、取り出した都道府県を元に住所から市区町村以下を取り出すことにしました。
【Excel】住所から市区町村以下を取り出す手順
住所から市区町村以下を取り出すには、初めに住所から都道府県を別セルに取り出し、取り出した都道府県を元に市区町村以下を取り出していくという手順になります。
なぜ、都道府県を先に別セルに取り出したうえで、市区町村以下を取り出す流れになるのかというと、都道府県はすべて「都」「道」「府」「県」という文字を含んでいますが、県の中で「鹿児島県」「和歌山県」「神奈川県」は文字の数が4文字になるため、何文字目よりも後ろの文字からといった指定ができないのです。
そこで、一旦、住所から都道府県だけを別のセルに取り出して、取り出した都道府県を元に文字数を指定して市区町村以下を取り出していこうというわけです。
住所から都道府県だけを取り出すには、IF・MID・LEFT関数を入れ子で使う
適当な住所を入力したものがこちらです。
A列には住所が入力されています。B列に都道府県を取り出してみます。
今回使用する関数は、IF関数がメイン。IF関数の条件指定にMIDを使い、IFの真の値・偽の値にLEFTを使って何文字分取り出すのかを指定していきます。
IF関数を挿入
B2を選択した状態で、Excelの数式バーにある「関数の挿入」ボタンをクリックします。
関数の挿入画面で、「関数の分類」にあるプルダウンを使って「論理」を選択し、「関数名」の中から「IF」をクリック、OKボタンをクリックします。
関数の引数という画面が開き、IF関数を指定することができるようになりました。
IFの論理式にMIDを入れ子。取り出した値に対して「4文字目に『県』という文字があれば」という式を作る
関数の引数画面で「論理式」の枠内をクリック。数式バーの一番左にある関数ボックスの▼をクリック→「その他の関数」をクリックし、MIDを探します。
IF関数の引数画面だったのがMD関数に変わったことを確認し、
「文字列」の枠内をクリック→住所が入力されているセル(今回はA2)をクリック、
「開始位置」の枠内に、県という文字が4文字目にあるかを指定したいので「4」、「文字数」には「県」という1文字だけを取り出したいので「1」と入力します。
注意!!MIDの指定ができたらIFの引数画面に戻って!
通常ならここでOKボタンをクリックするのですが、この式はIF関数の入れ子なので、MIDの引数画面でOKをクリックしません。
MIDの引数画面でOKをクリックしてしまうと、「この数式には問題があります」という画面が出てしまいます。
MIDの引数画面でOKせずに、数式バーに入っている「IF」という文字をクリックしてIFの引数画面に戻りましょう。
IFの引数画面に戻ったら、論理式にMID(A2,4,1)と入力されていますが、これだけでは、何文字目かに文字があるかというだけの式になっているので、4文字目に「県」という文字があったらという式を加えていきます。
MID(A2,4,1)の右側でクリック→「=”県”」と入力します。
これで、住所が入ったセルに入っている文字の4文字目に「県」という文字が入っていたらという条件が指定できました。
値が真の場合、LEFTを使って「4文字目に「県」が入っていたら左から4文字分取り出す」と指定する
次に、IFの「値が真の場合」にLEFTを入れ子にして「県」という文字を含む4文字を取り出すと指定していきます。
IFの引数画面の「値が真の場合」の枠内をクリック→関数ボックスから「LEFT」を挿入し、LEFTの引数画面で「文字列」は住所が入っているセル(今回はA2セル)をクリック、文字数は左から県までの文字数を指定したいので「4」を入力します。
先ほどのMIDと同じようにLEFTの引数画面にあるOKボタンをクリックせずに、数式バーにあるIFの文字をクリックしてIFの引数画面に戻りましょう。
IFの引数画面に戻ったら、「値が真の場合」の枠にLEFT(A2,4)と入力されているのを確認しましょう。
値が真の場合、LEFTを使って「4文字目に「県」が入っていなかったら左から3文字分取り出す」と指定する
最後は、IFの引数画面にある「値が偽の場合」。こちらには、住所の4文字目に「県」という文字が入っていなかったら左から3文字分取り出すという指定をしていきます。
IFの引数画面にある「値が偽の場合」の枠内をクリックし、先ほどと同じ手順でLEFTを呼び出し、「文字列」には住所が入っているセル(今回の場合はA2セル)、文字数は取り出したいのが3文字なので「3」と入力します。
数式バーにあるIFをクリックし、IFの引数画面に戻り、「値が偽の場合」に「LEFT(A2,3)と入っているのを確認し、OKボタンをクリックしましょう。
うまく「東京都」が取り出せたら住所の行数分だけこの数式をコピーしましょう。
今回は、Excelに入力されている住所から都道府県を取り出す方法をご紹介しました。
Excelの関数は単独で使うことの方が多いですが、今回のように複数の関数を入れ子にして使うこともあります。引数の画面を切り替える必要があるので少しややこしく感じてしまうかもしれませんね。
ここで取り出した都道府県を元に、市区町村以下の住所を取り出す方法は別の記事にまとめてあります。