MID関数とFIND関数とLEN関数を組み合わせて住所から市区町村以下を抜き取る方法

MID関数とFIND関数とLEN関数を組み合わせて住所から市区町村以下を抜き取る方法

文字列関数の組み合わせでオーソドックスなものとして住所情報を分割することがあげられます。

たとえば、

  • 都道府県の部分のみ抜き取る
  • 市区町村以下の部分を抜き取る

などです。

今回はその中の後者の住所の市区町村以下のデータを抜き取る方法について解説していきます。

使用する関数はMID関数・FIND関数・LEN関数の3つです。

MID関数で任意の文字列の中の任意の位置から指定した文字数分の文字列を抽出する方法 | Excelを制する者は人生を制す ~No Excel No Life~

FIND関数で任意の文字列が対象データの何文字目にあるかカウントする方法 | Excelを制する者は人生を制す ~No Excel No Life~

LEN関数で指定したセルの文字数をカウントする方法 | Excelを制する者は人生を制す ~No Excel No Life~

MID関数とFIND関数とLEN関数を組み合わせる方法

今回は住所の中で「県」が含まれている文字列から「県」の次の文字からすべてを抜き取りたいとします。

抜き取るために使う関数はMID関数となります。

県は3~4文字のものが混在しているため、抜き取るためのMID関数の開始位置に可変性を持たせるためにFIND関数を、抜き取る文字数に可変性を持たせるためにLEN関数を使用します。

具体的には下図の通りです。

住所から市区町村以下を抜き取る方法①

B列にある住所データからD列へ市区町村以下の住所を抜き取れていますね。

具体的な数式はB4セルを例にすると、

=MID(B4,FIND("県",B4)+1,LEN(B4))

となります。

MID関数の構成はMID(文字列,開始位置,文字数)でした。

それぞれ分解して解説します。

文字列

抜き取る元データを指定するだけなので通常通りですね。
今回はB4セルを指定します。

開始位置

「県」の次の文字を開始位置にしたいため、FIND関数を使用しています。

今回は、FIND("県",B4)+1の部分ですね。

B4セル内の"県"は4文字目のため、+1でE5セルのMID関数の開始位置は"5"になっています。

なお、FIND関数はSEARCH関数でも代用可能です。(数式の構成も一緒です。)
SERACH関数については下記記事をご参照ください。

SEARCH関数で任意の文字が対象データの何文字目にあるかカウントする方法 | Excelを制する者は人生を制す ~No Excel No Life~

文字数

アパート名などが入ると文字数に変動が生じるため、LEN関数を使用しています。

今回はLEN(B4)の部分ですね。

B4セルの総文字数は24文字ですので24文字分抜き取るように指定しています。

厳密にはD4セルは"神奈川県"の4文字分を引いた20文字となるため、"20"となるように可変性を持たせるべきです。

しかし、MID関数は実際に抜き取れる文字数が上限になるので、今回の方法でもD4セルに返った文字列の総数は20文字になります。

つまり、今回はより数式をシンプルにするためにLEN関数単体の使い方をしているわけですね。

まとめ

関数が長くてわかりにくいですが、上記分解して解説した結果を踏まえるとB4セルのMID関数は次のようになります。

=MID(B4,5,24)

つまり、B4セルの5文字目である"川"から24文字分抜き取ったものがD4セルに返っているわけですね。

ひとつひとつの関数の構成要素と、それぞれの関数の使用目的をケースごとに覚えると理解が深まり、自分なりに応用できるようになりますよ。

では、次回以降も関数の組み合わせによる使用例について解説していきますね。