仕事効率化

【エクセル】住所を分割!都道府県と市町村に分ける方法とは?

エクセルに入力した住所を分割したいと思ったことはありませんか?

たとえば…

ナル
ナル
住所リストから特定の都道府県にお住いの方のみを抽出したい。

人数の集計をしたい。

というとき、都道府県と市町村が一緒に入力されているデータでは作業が面倒です。
住所が分割されていないとデータの抽出が面倒
エクセルには「区切り位置」というデータを区切る機能も備わっていますが、文字列の中に空白があるなどの条件が必須となります。

エクセルで名簿管理!混在したデータ表記を統一する方法とは?エクセルで名簿を作成すると、半角と全角、大文字と小文字、ひらがなとカタカナなど、表記が混在してしまうとデータ管理をするのに不便です。関数や書式設定を利用して統一表記に変換しましょう。...
ナル
ナル
氏名なら空白を目印にして姓と名を分割できますよ!

しかし、住所で都道府県と市町村の間にスペースを挿入する人はほとんどいませんよね。

それに、静岡県は3文字ですが、神奈川県は4文字。

都道府県によって分割したい位置が異なるため、区切り位置機能で分けるのは困難です。

そこで本記事では、1つのセルに入力した住所を「都道府県」と「市町村」に分割する方法を徹底的に解説します!

エクセル関数で住所を都道府県と市町村に分割!

複数の都道府県が混在している住所でも、エクセル関数で都道府県と市町村にデータを分割することが可能です。
エクセル関数で住所を分割できる

主に利用するエクセル関数

1:FIND関数:指定した文字列を検索する
2:LEFT関数:文字列の先頭から指定した文字数を取り出す
3:MID関数:取り出す文字の開始位置を指定できる

ご紹介するエクセル関数はどれもシンプルなものばかり。

エクセル初心者さんでも手順を真似すればできるはずです。

住所に含まれる都道府県がすべて同じ場合には、「区切り位置」機能の方が素早く作業できます。

スポンサーリンク


住所の分割に利用するエクセル関数とは?

エクセルで住所を分割するときに使用する3つの関数について解説します。

住所の分割に利用するエクセル関数①FIND関数

FINDは指定した文字列を検索するエクセル関数。(大文字と小文字は区別される)

たとえば、「▲」という文字列をA2セルの「〇▲×■◇」の中から探してみます。
FIND関数の挿入
C2セルを選択した状態で、関数の挿入ボタンをクリック。

関数の挿入ダイアログボックスが起動したら、関数の分類を「文字列操作」に変更。
文字列操作からFINDを探す
一覧からFINDを選択します。
FIND関数の引数
FIND関数の引数は3つ。

検索文字列:▲
探したい文字列を入力します。

対象:A2
検索文字列を探すセルを指定します。

開始位置:(省略)
空白(省略)にすると、先頭文字から検索します。
指定したい場合は数値を入力。

引数の入力ができたらOK
OKをクリックすると、C2セルに「=FIND(“▲”,A2)」というFIND関数が入力されました。
FIND関数が挿入された
「▲」は「〇▲×■◇」の中で何番目にありますか? という意味の式になります。

FIND関数が返した値は「2」。正しく「▲」の位置を検索できていますね。

式の検索文字列を「◇」に変更すると、今度は「5」が値として返されました。
FIND関数の引数を変更
このように、FIND関数は特定の文字列の位置を簡単に求めることができます。

単体で利用する場面はほとんどありませんが、他のエクセル関数と組み合わせることで大活躍できるため是非覚えておいてください。

スポンサーリンク



住所の分割に利用するエクセル関数②LEFT関数

2つ目のLEFTは、文字列の先頭から指定した文字数を取り出すエクセル関数。

例として、A2セルの文字列「あいうえお」の先頭から3文字を抽出します。
LEFT関数の挿入
使い方はFIND関数と同じで、関数の挿入ボタンから文字列操作を選択。

一覧からLEFTを選択します。
文字列操作からLEFTを探す
LEFT関数の引数は2つのみ。
LEFT関数の引数は2つ

文字列:A2
取り出したい文字列のあるセルを入力。

文字数:3
文字列の先頭から抽出したい文字数。

LEFT関数の引数を入力
C2セルに「=LEFT(A2,3)」というLEFT関数が入力され、「あいう」が表示。
LEFT関数の完成
文字列「あいうえお」の先頭から3文字を抽出できましたね。

LEFT関数の文字数を4にすると、返される値は「あいうえ」に変更。
LEFT関数の引数を変更
LEFT関数も単体では使い道が少なそうなイメージですが、FIND関数と組み合わせると非常に便利です。(後述します。)

スポンサーリンク


住所の分割に利用するエクセル関数③MID関数

LEFT関数が文字列の先頭から文字を抽出するのに対して、MID関数は取り出す文字の開始位置を指定できます。

ナル
ナル
早速、例を紹介します。

A2セルに入力されている文字列「ABCDE」から、「B」という文字のみを取り出してみます。
MID関数の挿入
C2セルを選択した状態で関数の挿入ボタン。

関数の分類を文字列操作に変更して、MID関数を探します。
文字列操作からMID関数を探す
MID関数の引数は3つです。
MID関数の引数は2つ

文字列:A2
対象となる文字列があるセルを指定します。

開始位置:2
何番目の文字から抽出するかを入力。

文字数:1
取り出したい文字数です。

MID関数の引数を入力
OKをクリックすると、C2セルに「=MID(A2,2,1)」というMID関数が挿入されました。
MID関数が挿入された
文字列「ABCDE」の「2」文字目から「1」文字を抽出することになるため、返された値は「B」。

MID関数の引数「文字数」を3に変更。
MID関数の引数を変更
文字列「ABCDE」から「BCD」を取り出せました。

MID関数も単体では使い勝手がイマイチですが、FIND関数と組み合わせることでその本領を発揮します。

スポンサーリンク



エクセルの住所を分割する方法と手順!(都道府県と市町村)

例として、「福岡県北九州市門司区青葉台」という住所を都道府県(福岡県)と市町村(北九州市門司区青葉台)に分ける手順を紹介します。
住所を分割する方法

エクセルの住所を分割する方法と手順①(都道府県)

住所から都道府県を抽出するのに利用するエクセル関数は、FIND関数とLEFT関数の2つ。

文字列「県」が住所の何文字目にあるかをFIND関数で検索。

そして、LEFT関数で先頭から「県」の文字までを取り出すという流れになります。

まずはB1セルにFIND関数を挿入。
FIND関数で県を検索
「=FIND(“県”,A2)」が入力され、返された値は「3」。

A2セルの住所では、3文字目が「県」になるということです。
3文字目が県
ここでB2セルの「FIND(“県”,A2)」をコピーしておくと便利です。

「=」は含みません。
FIND関数をコピーしておく
次にC2セルLEFT関数を挿入。

文字列はA2セルを指定。

文字数には、先ほどコピーしたFIND関数を貼り付け。
コピーした式を貼り付け
すると、C2セルにLEFT関数「LEFT(A2,FIND(“県”,A2))」が挿入されました。
FINDとLEFTの組み合わせ
これでA2セルから、「県」までの文字列を抽出できます。

しっかりと「福岡県」を分割できましたね!
スポンサーリンク


エクセルの住所を分割する方法と手順②(市町村)

では、次に都道府県以外の市町村(町名や番地を含む)を取り出します。

D2セルで利用する関数は、FIND関数とMID関数。

FIND関数で文字列「県」を検索。

ナル
ナル
「県」の次の文字以降をすべて取り出せば、住所データから市町村を分割できます。

D2セルにMID関数を挿入。

関数の引数は下記を参考に設定してください。
MID関数の引数を設定

文字列:A2

開始位置:FIND(“県”,A2)

文字数:30

開始位置は、都道府県を分割したときと同じなのでコピペでOK。

文字数は20~30文字以上あれば問題ありませんが、この値が少なすぎると住所にマンション名を含むときに途中までしか取り出せないことがあるので注意。

文字数は多く設定しても困ることはないため、余裕のある設定をしておきましょう。

D2セルにMID関数「=MID(A2,FIND(“県”,A2),30)」が挿入。
MID関数
A2セルの住所から、「県」以降の文字列を分割して取り出しました。

でも、市町村に「県」は不要ですよね?

そこで一工夫。

MID関数の開始位置に「+1」を付け足します。
値を1つ足す
これにより、文字列「県」の1つ次の文字から先を開始位置に指定できます。

D2セルのMID関数が「=MID(A2,FIND(“県”,A2)+1,30)に変更されました。
都道府県の抽出
市町村の欄には「北九州市門司区青葉台」がしっかり表示できていますね。

文字列に「県」を含む住所なら、FIND関数とLEFT関数で都道府県、FIND関数とMID関数で市町村に分割することが可能です。

今回は解説用としてB2セルにFIND関数を挿入しましたが、LEFT関数やMID関数に慣れている方はこの作業は必要ありません。

FIND関数は別のセルで入力しなくてもOK
この方法は、氏名を姓と名に分割するときにも役立ちます。
氏名を姓と名に分割するのにも使える
その場合は姓と名の間にある「空白」をFIND関数で検索してください。
スポンサーリンク



「県」が含まれない住所の分割方法とは?

文字列に「県」が含まれている住所では、先ほどお伝えした方法で「都道府県」と「市町村」に分割することができます。

しかし、北海道、東京都、京都府、大阪府の住所では、そもそも文字列に「県」が存在しないため、FIND関数を利用してもエラーを返してしまいます。
FIND関数がエラーを返す

ナル
ナル
これでは、住所を都道府県と市町村に分割することができません。

どうしたものかと全国の都道府県名を眺め、住所に「県」を含むかどうかではなく、文字列の何番目で分割すれば良いか発想を変えてみました。

「県」が含まれない住所を分割する方法①(都道府県)

3文字の都道府名北海道、東京都、京都府、大阪府
3文字の県名青森県、岩手県、宮城県、秋田県、山形県、福島県、茨城県、栃木県、群馬県、埼玉県、千葉県、新潟県、富山県、石川県、福井県、山梨県、長野県、岐阜県、静岡県、愛知県、三重県、滋賀県、兵庫県、奈良県、和歌山県、鳥取県、島根県、岡山県、広島県、山口県、徳島県、香川県、愛媛県、高知県、福岡県、佐賀県、長崎県、熊本県、大分県、宮崎県、沖縄県
4文字の県名神奈川県、和歌山県、鹿児島県

住所を分割するとき、和歌山県、神奈川県、鹿児島県以外の都道府県は、すべて先頭から3文字目までを抽出すれば都道府県名を抽出できる!

ナル
ナル
そこでIF関数を利用して式の分岐を検討。

IF関数の引数は3つです。

論理式:MID(A2,4,1)=”県”
MID関数で4文字目から1文字を抽出。

その文字が「県」なら「真の場合」、違うなら「偽の場合」に答えが分岐します。

値が真の場合:LEFT(A2,4)
住所の4文字目に「県」があるとき、A2セルの先頭から4文字を取り出します。

値が偽の場合:LEFT(A2,3)
住所の4文字目が「県」ではないとき、A2セルの先頭から3文字を取り出します。

IF関数で分岐
C2セルに「=IF(MID(A2,4,1)=”県”,LEFT(A2,4),LEFT(A2,3))」という式が入力されました。
都道府県を正確に取り出せる
他のセルにも式をコピーしてみましたが、どの住所でも「都道府県」を正確に分割できていますね。

FIND関数は利用しないため、B列は削除しても構いません。

スポンサーリンク


「県」が含まれない住所を分割する方法②(市町村)

では、次は住所から市町村の方を抽出します。

住所から都道府県を取り出したように、ここでもIF関数を利用します。
市町村の抽出にもIF関数

論理式:MID(A2,4,1)=”県”
A2セルの4文字目から1文字を抽出したとき、「県」かどうか?

値が真の場合:MID(A2,5,20)
4文字目が「県」だったとき、A2セルの5文字目から20文字を抽出。

値が偽の場合:MID(A2,4,20)
4文字目が「県」ではなかったとき、A2セルの4文字目から20文字を抽出。

C2セルに「=IF(MID(A2,4,1)=”県”,MID(A2,5,20),MID(A2,4,20))」と式が挿入されました。

他のセルに式をコピーしてみると、問題なく住所の市町村を取り出せています。
市町村の取り出し完了
IF関数を使うため、ちょっとややこしい感じの式になってしまいますが、この方法なら全国どこの住所であっても、都道府県と市町村に分割することができますね!
スポンサーリンク



エクセルの住所を分割する方法まとめ

エクセルの住所を都道府県と市町村に分割する方法をお伝えしました。

すべての住所データに「県」が含まれているときは、FIND関数とLEFT関数で都道府県を、FIND関数とMID関数で市町村を抽出した方がラクに分割できます。

氏名を姓と名に分けるときにも有効です。

全国いろいろの住所が混在しているデータを分割するなら、IF関数を利用して条件分岐をしてみてください。

ナル
ナル
他の関数を使ったやり方も探せばありますが、僕はこの記事でお伝えした方法が一番簡単だと感じています。

それでは、エクセルで住所を分割してみてくださいね!
スポンサーリンク