Excel関数の代表的な練習問題であり、実用上でもよく使われる問題のひとつに、住所に記載される都道府県名を分離または削除したいというものがあります。

例えば、下図のように住所録があったとき、「住所1」列(D列)の住所から都道府県部分を取り出したり、都道府県部分を削除したりという操作をしてみます。

 

いくつか考え方がありますが、よく使われる方法をご紹介します。

都道府県名には 3文字のものと 4文字のものがあります。
「〇〇県」以外は、北海道、東京都、大阪府、京都府の 4つだけで、いずれも 3文字です。
ということは、D列の住所データについて「県」があれば「県」までを取り出し、「県」がなければ先頭から 3文字を取り出せば、それが都道府県名ということになります。

まず、E2セルに「=FIND("県",D2)」とし、E列のデータ対応部分にコピーしてみます。
多くは「3」、つまり「県」が 3文字目にあるという結果になり、E6セルは「#VALUE!」エラーに、E12セルは「4」という結果になりました。(下図)

 

エラーなく数値が戻った行については、住所の先頭からその数値分の文字を取り出せばよく、エラーとなった行(つまり、「県」を含まない住所)については、先頭から 3文字だけ取り出せばよいです。
E2セルに「=IFERROR(LEFT(D2,FIND("県",D2)),LEFT(D2,3))」と入力し、E列のデータ対応部分にコピーします。(下図)

 

代わりに、住所から都道府県名を削除するなら、F2セルに「=REPLACE(D2,1,FIND("県",C2),"")」とし、F列のデータ対応部分にコピーすると、あらかた上手くいきますが、「〇〇県」以外の都道府では「#VALUE!」エラーとなります。
そのため、それも考慮して F2セルに「=IFERROR(REPLACE(D2,1,FIND("県",D2),""),REPLACE(D2,1,3,""))」と入力し、F列のデータ対応部分にコピーします。(下図)

 

この方法に一部似ていますが、もうひとつ、よく行われる方法もご紹介しておきます。

考え方としては、漢字 4文字となるのは、神奈川県、和歌山県、鹿児島県 の 3県のみで、それらの最後は「県」となり、残る都道府県はすべて漢字 3文字です。
ということは、D列の住所の先頭から 4文字目が「県」ならば、先頭から 4文字分を取り出し、4文字目が「県」でないなら、先頭から 3文字分を取り出せばよいです。

E2セルに「=IF(MID(D2,4,1)="県",LEFT(D2,4),LEFT(D2,3))」と入力し、E列のデータ対応部分にコピーします。(下図)

 

代わりに、住所から都道府県名を削除するなら、F2セルに「=IF(MID(D2,4,1)="県",RIGHT(D2,LEN(D2)-4),RIGHT(D2,LEN(D2)-3))」とし、F列のデータ対応部分にコピーします。(下図)

 

後半の方法について詳細な説明な省略しましたが、文字列操作関数である「LEFT」「MID」「RIGHT」「LEN」の使い方を調べて解釈してみてください。

今回は、住所から都道府県名を抽出または削除する方法を 2つご紹介しました。
いくつかの関数を組み合わせて処理するわけですが、対象とするデータを眺め、処理目的に対応する“ルール”を導き出すことができれば、あとは個々の処理を行う関数を組み合わせていけば完成です。