029.【住所を都道府県で分割】において、住所の都道府県が略されていると、都道府県以外の文字が都道府県として取り出されてしまいます。まあ、入力する立場になってみれば、「札幌市といえば北海道なんだからいちいち書かなくても分かるっしょ」とか「鹿児島県鹿児島市って何かクドイから県名いらないよね」などなど、都道府県を略してしまう理由が色々あるのは理解できます。しかしながら、都道府県を抜き出す立場としては、なかなか頭の痛い話ではあります。そこで、次のような考え方で式を作ることにより、都道府県が略されていた時は、都道府県のセルを空欄にすることは可能です。
① もし、4文字目が「県」だったら、IF関数 、MID関数 、LEFT関数 を使って、最初の4文字を都道府県とする ⇒ IF(MID(A1,4,1) = "県",LEFT(A1,4),①以外の処理)
② もし、3文字目が「都」「道」「府」「県」だったら、IF関数 、OR関数 、MID関数 、LEFT関数 を使って、最初の3文字を都道府県とする ⇒ IF(OR(MID(A1,3,1)="都",MID(A1,3,1)="道",MID(A1,3,1)="府",MID(A1,3,1)="道"),LEFT(A1,3),②以外の処理)
③ 上記以外は、都道府県が略されていると判断して都道府県を空欄にする ⇒ ""
①②③を組み合わせると、Excelでは以下のような式になります。
=IF(MID(A1,4,1)="県",LEFT(A1,4),IF(OR(MID(A1,3,1)="県",MID(A1,3,1)="都",MID(A1,3,1)="府",MID(A1,3,1)="道"),LEFT(A1,3),""))
「札幌市」で始まる住所に関しては、都道府県が空欄になります。
B1セルを他のセルにもコピペします。
都道府県を除いた残りの住所に関しては変更ありません。RIGHT関数 と LEN関数 を使って以下のように取り出します。
=RIGHT(A1,LEN(A1)-LEN(B1))
都道府県がない住所の場合は、住所そのものが表示されます。
C1セルを他のセルにコピペします。
Googleスプレッドシートでも全く同じ方法が使えますので、 住所を都道府県で分割したい場合は以下のような式になります。
=IF(MID(A1,4,1)="県",LEFT(A1,4),IF(OR(MID(A1,3,1)="県",MID(A1,3,1)="都",MID(A1,3,1)="府",MID(A1,3,1)="道"),LEFT(A1,3),""))
「札幌市」で始まる住所に関しては、都道府県が空欄になります。
B1セルを他のセルにもコピペします。
都道府県を除いた残りの住所に関しては、以下のようにして取り出します。
=RIGHT(A1,LEN(A1)-LEN(B1))
都道府県がない住所の場合は、住所そのものが表示されます。
C1セルを他のセルにコピペします。
ではでは。
0 件のコメント:
コメントを投稿