住所から都府県名を取り出すには / 都道府県以降の住所を取り出すには

住所から都道府県名を取り出すには

「県」の位置に注目します。

47都道府県の中で「神奈川」「和歌山」「鹿児島」の三県だけが頭4文字取得しないと県名とならない。他は、ほとんどが頭3文字を取り出せば都道府県名となる。

「東京都」「北海道」「京都府」「大阪府」については、「県」を見つけて取り出すというわけにはいかない。ということで、

 

(A1セルに都道府県を含んだ住所が入力されている場合)

求めるセルには、
=IF(MID(A1,4,1)="県",LEFT(A1,4),LEFT(A1,3))

とする。

 

 

 

はじめのIF関数「MID(A1,4,1)="県"」で、先頭から4文字目が「県」という字かどうかを判断します。

4文字目が「県」という字ならば、「神奈川県」「和歌山県」「鹿児島県」のいずれかということで、IF関数の第2引数「LEFT(A1,4)」で、先頭から4文字を取り出します。

そうでない(4文字目が「県」という字でない)場合は、「神奈川県」「和歌山県」「鹿児島県」以外の都道府県とみなすことができるので、IF関数の第3引数「LEFT(A1,3)」で、先頭から3文字を取得します。

 

 

 

 

 

 

 

都道府県名以降の住所を取り出すには

LEN関数を使って、住所と都道府県名の文字数を数え、RIGHT関数を使って「住所の文字数ー都道府県名の文字数」で求められる文字数分の文字列を住所の右端から取り出します。

 

住所がセルA1に、都道府県名がA2に入力されているとします。

求めるセルには

=RIGHT(A1,(LEN(A1)-LEN(A2)))

とします。

 

 

 

LEN関数は、

=LEN(文字列)

指定した文字列またはセルの文字数を返します。全角半角に関係なく、1文字を1と数えます。数字や記号、スペース、句読点なども文字数に含まれます。

 

 

 

 

 

 

Question

住所の中で、大阪府だったら、~市を抽出、 大阪市だったら、~区を抽出して反映したいです。 また、兵庫県と京都府と東京都は、~市までを反映したいです。 この場合、住所がA2にあった場合、B2に上記の地名を反映させるには、エクセル関数はどのような式を入れればよろしいでしょうか?

Anser

=IF(OR(LEFT(A2,3)="大阪府",LEFT(A2,3)="兵庫県",LEFT(A2,3)="京都府",LEFT(A2,3)="東京都"),MID(A2,4,FIND("市",A2)-3),IF(LEFT(A2,3)="大阪市",MID(A2,4,FIND("区",A2)-3),""))