MID+FIND関数で特定の文字から文字までを抽出

MID+FIND関数で特定の文字から文字までを抽出

特定の文字を抜き出したい

多くのExcelデータを扱う際、よくありがちな悩みの一つが「データの抽出」です。

例えば住所録を扱うデータならば「都道府県だけ」や「市町村だけ」といったことがあります。

また電話番号を扱うデータならば「下4桁だけ」といったこともあり得ます。

片側からなら簡単に抜き出せる

単純に「右から〇文字」とか「左から〇文字」ということならば

RIGHT関数やLEFT関数を使えば解決します。

※RIGHT関数についてわからない方はこちら、LEFT関数についてはこちら

しかしデータの真ん中、しかも特定の文字から文字を抜き出すにはどうしたらよいのでしょうか?

答えは簡単で、MID+FIND関数を使用すれば解決できます。

つまりこう

市名は
=MID(B10,FIND("県",B10)+1,FIND("市",B10)-FIND("県",B10))
で求めることができます。

以下で詳しく手順などを解説します。

解説

手順1.市名を出したいリストです。

こちらが市名のみ抽出したいリストとなります。

今回は分かりやすくするため、リストの都道府県を絞っております。

手順2.MID関数を使用します

まずはMID関数で市名を抽出します。

※MID関数についてわからない方はこちら

=MID(B3,4,3)

手順3.仙台市と出ました。

これで「仙台市」と抽出することができました。

ではこれを下にコピーするとどうでしょうか?

手順4.しかし他はうまく出ません。

このように正しく抽出できませんでした。

開始位置や市名の文字数が都道府県によってバラバラだからです。

ではどうすれば一つの式でキレイに抽出できるのでしょうか?

まず正しいMID関数の中身を見てみましょう。

手順5.正しいMID関数の中身です。

本来上記のような関数であれば正しく市名を抽出できます。

しかし、これをそれぞれ手入力すると関数を使用している意味がありません。

そこで使用するのがFIND関数です。

※FIND関数についてはこちら

手順6.分けて考えます。まず開始位置からです。

分かりやすくするために隣の列に関数を追加します。

まず開始位置を指定します。

=FIND(“県”,B3)+1

まず=FIND(“県”,B3)の式で「左から”県”までの文字数は?」となり、これは「3」となります。

ですがMID関数で開始位置を指定する際、このままだと「県仙台市~」となってしまうため、+1を加えております。

手順7.FIND関数を使用します。

これで開始位置が「仙(台市)」となる4を指定することができました。

手順8.他も出ました。

コピーすると他のセルも同様にそれぞれの文字数に合った開始位置を指定することができました。

手順9.次に文字数です。

次に開始位置からの文字数を指定します。

ここで=FIND(“市”,B3)としたいところですが、それだと正しく出てきません。

手順10.FIND関数1つでは正しく出ません。

文字数が6となってしまうため、「仙台市青葉区」までと表示されてしまいます。

手順11.FIND関数を2つ使用し引きます。

そこでもう一つFIND関数で先ほどの6から引きます。

=FIND(“市”,B3)-FIND(“県”,B3)

手順12.これで出すことができました。

FIND(“県”,B3)は先ほど出したように”県”までの文字数が3なので、6ー3で3となります。

手順13.他のセルも正しい文字数を出すことができました。

他のセルも正しく文字数を出すことができました。

手順14.先ほどの関数をC列の関数に入れます。

あとは今作成した関数をC列の開始位置と文字数に入れます。

=MID(B3,FIND(“県”,B3)+1,FIND(“市”,B3)-FIND(“県”,B3))

手順15.正しい市名が出ました。

これで正しく市名まで抽出することができました。

手順16.他のセルも正しい市名が出ました。

他のセルも同様に正しく市名まで抽出できました。

まとめ

市名は
=MID(B10,FIND("県",B10)+1,FIND("市",B10)-FIND("県",B10))
で求めることができます。

完成した関数を見ると「うわ、こんな関数作るなんて無理。。。」となってしまうかもしれませんが、

関数作成の際は分けて考えることがとても大事です。

今回開始位置と文字数で分けたように、別々の関数を作成しておいてから

後で組み合わせるというやり方は私もよく使います。

最初の作成時にまとめて作ると頭の中が混乱してしまうため、

情報を整理する上でもバラバラに作成してから後でまとめることを心がけましょう。

それではまた。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA