「県」の位置に注目します。
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と数えます。数字や記号、スペース、句読点なども文字数に含まれます。
=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),""))