これまで右から文字を抜き出すRIGHT関数。左から文字を抜き出すLEFT関数について説明しました
【RIGHT/RIGHTB関数】下○桁の数値を抜き取る・右端から文字を抽出・抜き出す方法について ► 独学エクセル塾 (dokugakuexcel.com)
【LEFT/LEFTB関数】上○桁の数値を抜き取る・左端から文字を抽出・抜き出す方法について ► 独学エクセル塾 (dokugakuexcel.com)
今回は指定位置から指定した文字数の文字を抜き出すMID関数について説明したいと思います。
FIND関数と合わせれば指定位置も自動で計算して
条件に合った位置から文字・数値を抜け出せるようになります。
それでは見ていきましょう。
■関数の仕組み
抽出文字・数値の参照・・・抽出したい文字数値が入力してあるセル
抽出開始位置・・・文字を抽出する先頭文字数
抽出文字数・・・文字を何文字抜き出すのか、数値で入力
■指定した位置から文字を抜き出す
では実際に関数を使用してみましょう
今回は下記のような名簿を使用してみます。
今回行いたいこととして氏名から下の名前を抜き出したいとおもいます。
まず、山田 太郎さんから行ってみましょう。
関数の仕組みはこうです。
=MID(抽出したい文字・数値の参照,抽出開始位置,抽出文字数)
抽出したい文字・数値は山田 太郎の氏名が入力されてあるB3になります。
抽出開始位置は山田の2文字とスペースがあるので3文字以降なので開始位置は4になります。
抽出文字数は2文字ですね。
関数式に直すとこのようになります。
=MID(B3,4,2)
では実際に打ち込んでみましょう。
実行すると…
山田太郎の太郎を抜き出すことができました。
ほかの人の名前もフィルダウンで一気に入力できます
ここで気づいた方もいらっしゃると思いますが
山本聡さんは下の名前が1文字です。しかし関数式では2文字抜き取っているはずです。
メカニズムとして聡の1文字以降、文字がないので聡の一文字のみ抜き出しする仕組みです。
そのため山田太郎の
=MID(B3,4,2)
の式でも
100文字抜き出すように
=MID(B3,4,100)
このような式にしても同じ結果の「太郎」しか抜き取らない仕組みになってます。
■検索した位置から数値、文字を抜き取る
先ほどの名簿に新しく人が1名追加されました。
勅使河原(てしがわら)さんは苗字で文字が4文字あります。
ではこちらでフィルダウンをしてみましょう。
はい、4文字目から2文字抜き取るので「原」とスペースが出力されました。
これでは苗字の文字数によって下の名前を抜け出せないことが発覚しましたね。
こちらの問題はFIND関数を使用することで解決できます。
FIND関数とは検索した文字が何文字目にあるか検索する関数です。
今回は記事が脱線するのでFIND関数は別の記事で紹介します。
活用方法はこうなります。
苗字と下の名前には「スペース」があります。
なのでFIND関数でスペースを検索しましょう
勅使河原さんのスペースの文字数を探す関数はこのようになります。
=FIND(“ ”,B8,1)
実施すると、、、
スペースの位置が5番目ということが分かりました。
この仕組みを使用してMID関数に織り込んでみましょう。
抽出可能位置にスペースを検索するFIND関数+1をすれば下の名前の一文字目を指定できます。
=MID(B8,FIND(“ ”,B8,1)+1,2)
このようになります。
では実行してみましょう。
うまく機能していますね。
文字数と抽出位置・抜き出す文字数が一緒であればこのようなFIND関数と合わせなくてもいいですが
このように変化が生じる文字・数値データであればFIND関数で変化に柔軟に対応できる関数となります。
ちなみにLEN関数を使用すれば参照したセルの文字数がわかります。
つまり文字数からFIND関数で出た値を引けば最後の文字まで抽出したい文字数が算出できます。
勅使河原さんの場合はこうなりますね。
=MID(B8,FIND(“ ”,B8,1)+1,LEN(B8)-FIND(“ ”,B8,1))
下記のように文字・数値の数が超すこととない数値を入力してもいいです。
=MID(B8,FIND(“ ”,B8,1)+1,10000)
■まとめ
いかがだったでしょうか。
文字の抜き取りは例のように名前の抽出にも役立ちますが
入力値の判断や層別など様々なことが可能になります。
ぜひLEN関数などと合わせて変化に対応できる文字の抜き取りをしてみてください。