MID関数
文字列から指定した開始桁から指定した文字数を抜き出すのがMID関数です。
「ExcleMID関数」という文字列から「MID」だけを抜き出すことができます。
また、SEARCH関数と組み合わせることで、開始位置や文字数を可変にすることもできるので、使用例2・3で「名字+空白+名前」から名字・名前を抜き出す方法をご紹介します。
※SEARCH関数がエラーになった場合の回避方法もご紹介します。
MID(文字列,開始位置,文字数)
文字列の指定された位置から、指定された数の文字を返します。半角と全角の区別なく、1文字を1として処理します。
Excel 関数の挿入
引数には以下が使用できます。
引数 | 内容 |
---|---|
文字列 | 検索の対象となる文字を含む文字列を指定します |
開始位置 | 抜き出したい文字列の先頭文字の位置を指定します |
文字数 | 抜き出す文字の数を指定します |
MID関数の使用例
例1 文字列「ココッチ ブログ」から「ッチ」を抜き出します。


例2 「名字+空白+名前」から名字を抜き出す。
以下表のB列の「名字+空白+名前」から名字を抜き出します。

開始位置・文字数が名前によって変わります。このような場合は計算して開始位置と文字数を求めます。
今回のB列では名字と名前の間に” ”(全角の空白)があるのでSEARCH関数を使用して空白の位置を取得します。
空白の開始位置:SEARCH(“ ”,B2,1)
名字の開始位置は”1″で固定のため計算式は以下となります。
=MID(B2,1,SEARCH(“ ”,B2,1)-1)
文字数は空白の開始位置の一つ前となるためSEARCH関数の結果から「-1」します。


「佐藤 一郎」という文字列から名字の「佐藤」という文字だけ抽出されました。
名字と名前の間に空白がない場合に発生するエラー(#VALUE)の回避方法
ここからはMID関数の説明からは少し話がそれますが、折角なのでエラーの回避方法をご説明します。

「IFERROR関数」で回避します。
※IFERROR関数:第一引数がエラーの場合に、第2引数の値を返します。
=MID(B2,1,IFERROR(SEARCH(“ ”,B2,1)-1,LEN(B2)))
SEARCH関数が空白位置の取得に失敗した場合に、LEN関数で文字列全体の文字数を取得するように指定します。
※LEN関数:文字列の文字数を返します。

例3 「名字+空白+名前」から名前を抜き出す。
以下表のB列の「名字+空白+名前」から名前を抜き出します。
例2と同じ表から名前を抽出します。
名字と同様に” ”(全角空白)の位置がポイントになります。
” ”(全角空白)の次の文字が開始位置になります。
名前の開始位置:SEARCH(“ ”,B2,1)+1
文字数は全体の文字数から” ”(全角空白)の位置を引くと取得されます。
「佐藤 一郎」は全体で5文字で全角空白は3桁目にあり、「5-3」で2文字といった感じです。
名前の文字数:LEN(B2) – SEARCH(“ ”,B2,1)
開始位置と文字数の数式を利用して以下の計算式をE2セルに入れます。
=MID(B2,SEARCH(“ ”,B2,1)+1,LEN(B2)-SEARCH(“ ”,B2,1))

こちらも名字と同様に” ”(全角空白)が存在しないとエラーとなります。

これもIFERROR関数を使って回避します。今回はエラーの場合に”-”に置き換えます。
=IFERROR(MID(B2,SEARCH(“ ”,B2,1)+1,LEN(B2)-SEARCH(“ ”,B2,1)),”-”)

出来上がりです。
氏名から名字・名前を手作業で分けるのは気が遠くなる作業です。
ぜひMID関数をうまく利用して文字列を抽出して時短しましょう。
まとめ
ここまでご覧いただきありがとうございます。
今回はMID関数の使い方をご説明しました。
使い方の例でご紹介したように、MID関数は「SEARCH関数」「LEN関数」と一緒に使うとかなり便利に使えます。
ぜひ使いこなして、文字列から文字を抽出する作業を短時間で終わらせましょう。
以上、参考になったらうれしいです。
もっとエクセルを使いこなしたい人にお勧めの本は以下です。
具体的なケースを例示しながら解説してくれているのでとても分かりやすいです。
まさに「最強の教科書」となる1冊です。
興味のある方は是非ご覧になってみてください。
コメント