エクセルのMID関数を使って途中の文字を抜き出す方法
初心者MID関数の使い方を教えてください。
文字を抜き出したいんですけど、うまくできません。



MID関数は、どの位置から何文字抜き出したいのかを指定するだけでOKだよ!
MID関数は、セルに入力されている文字の中から抜き出したい文字がある場合に使用します。
文字列の途中にある特定の文字を抜き出せる関数なので、覚えておくと便利です。
- 抜き出した文字列を表示したい列を作成
- 作成した列にMID関数を挿入する
文字を抜き出す関数には、「MID関数」のほかに、「LEFT関数」、「RIGHT関数」があります。
抜き出したい文字の位置によって使い分けると、必要な文字だけをスムーズに抜き出すことが可能です。
今回は文字を抜き出す関数の中から、MID関数の使い方をわかりやすく解説します。
エクセルのMID関数とは文字列の途中から指定した文字数を取り出す関数
エクセルのMID(ミッド)関数は、セルに入力されている文字列の途中から指定した文字数を取り出す関数です。
LEFT関数、RIGHT関数は、文字の左端または右端を基準にして抜き出したい文字数を指定しますが、MID関数は文字の開始位置と文字数を指定することができるので、途中にある文字列を抜き出すことができます。



MID関数はどんなときに使える関数なんですか?



データを使って、便利な使い方を確認してみよう!
MID関数でできること
MID関数は、開始位置と文字数を指定して、文字列の途中にある文字を抜き出す関数です。


例えば、上記のように社員コードが入力されている社員名簿があったとします。
社員名簿の真ん中の4桁は入社した年になっています。
MID関数を使えば途中の文字列を抜き出すことができるので、社員コードから入社した年だけを抜き出すといったことが可能です。
1つのセルに入力されている文字列から、特定の文字だけを抜き出したいときはMID関数を活用してみてください。
MID関数の基本構文と引数の覚え方
MID関数の基本構文を見てみましょう。
「=MID(文字列, 開始位置, 文字数)」
MID関数の引数は、以下の3つです。
文字列:取り出したい文字が入力されているセル番地
開始位置:取り出す文字が文字列の何番目にあるか数字で指定
文字数:取り出したい文字の数
MID関数で必要になるのは、抜き出したい文字が入力されている「セルの位置」、「取り出す文字の最初の位置」、「取り出す文字数」です。
引数の内容と順番を覚えておきましょう。
MID関数を使って文字列を取り出してみよう



なんとなくわかったような気がするんですけど、実際にどのように使うのかがわかりません。



簡単なデータを使って、MID関数で文字を抜き出してみよう!


上記のデータを使って、「Cの2」のセルにMID関数を挿入して、「Aの2」に入力されている「SAL-2021-045」から「2021」だけを抜き出してみましょう。


- C2をクリック
- 「=MID(」と入力
- 抜き出したい文字が入力されている「A2」をクリックして「,(カンマ)」を入力
- 「SAL-2021-045」のなかの最初の「2」は5文字目にあるので、「5」と入力して「,」を入力する
- 「2021」は4文字なので「4」と入力して「)」を入力して数式を閉じる
- Enterで数式を確定する
=MID(A2,5,4)「C2」に「2021」と表示することができました。
MID関数を使って社員名簿から必要な文字列を抜き出す手順
今度は、MID関数を使って社員名簿から必要な文字を抜き出してみましょう。


上記の社員名簿のF列とG列の間に列を挿入して、MID関数を使ってB列に入力されている社員コードの真ん中の4桁の数字を抜き出してみましょう。


- G列の上で右クリック
- 「挿入」を選択


挿入した列の見出しを入力してください。
今回は入社した年を抜き出すので、「入社年」と入力しています。


挿入した列の見出しのすぐ下のセルに「=MID(」を入力してください。


- 「B2」をクリック
- 半角で「,(カンマ)」を入力


今回の場合、抜き出す文字の開始位置が「5番目」、文字数が「4文字」なので、カンマのあとに「5,4)」を入力して、Enterで数式を確定してください。


- 関数を挿入した「G2」のセルをクリック
- セルの枠の右下にある「■」をダブルクリックする


すべてのセルに数式をコピーすることができました。
エクセルのMID関数で文字を抜き出すときの注意点
都道府県名や氏名のようにすべてが同じ文字数ではない文字を抜き出したい場合、MID関数単体では必要な文字だけをうまく抜き出すことができません。



文字数が同じではない場合、MID関数で文字を抜き出すとどうなってしまうんですか?



さっきの社員名簿を使って、氏名から名字だけを抜き出してみよう。


これは、氏名のセルから名字だけを抜き出せるように加工した社員名簿です。
「Iの2」には、「=MID(C2,1,2)」という関数を挿入しています。
引数の設定は、以下のとおりです。
文字を抜き出すセル:氏名が入力されている「C2」
文字を抜き出す先頭の文字の位置:名字の1文字目は1番目なので「1」
文字数:「佐藤」は2文字なので「2」に設定
「Iの7」のセルの計算結果を見てみると、「佐藤」と表示されていますね。
今度は、「Iの7」に挿入したMID関数をI列のセルにコピーしてみましょう。


赤枠の行に入力されている「長谷川 美穂」という名前が入力されているI列のセルの計算結果を見ると、「長谷」と表示されていますね。
これは、抜き出す文字数を「2」に設定してしまっていたことが原因です。
17行目の「林」のように名字が1文字の場合は、2文字に設定しても「林」と「空白」が表示されるので正しい名字が表示されますが、3文字の名字が混ざっていた場合は途中までしか表示されません。
「長谷川」という名字に合わせて抜き出す文字数を「3」にしてしまうと、名字が1文字の林さんは「林 漣」と表示されてしまいます。
MID関数だけで特定の文字を抜き出したい場合、抜き出したい文字数がすべて同じでないときはうまく抽出できないので注意しましょう。
他の関数と組み合わせてMID関数で文字列を抜き出す方法【応用編】
前述で解説したように、氏名やメールアドレスのように抜き出したい文字列の文字数が同じではない場合、MID関数だけで必要な文字数をうまく抜き出すことができません。
しかし、指定した文字が文字列の何番目にあるかを調べるFIND(ファインド)関数やセルに入力されているすべての文字をカウントするLEN(レン)関数を組み合わせれば、異なる文字列の中から必要な文字だけを抜き出すことが可能です。



他の関数と組み合わせれば、社員名簿の中から異なる文字数の名字や名前だけを抜き出せるってことですか?



引数が少し複雑になるけど、使い方を覚えればMID関数で文字数が異なる文字を抜き出すことができるよ!
実務で文字を抜き出す場合、氏名やメールアドレスのように文字数が異なるデータから特定の部分だけを抜き出したいというケースもありますよね。
MID関数の基本的な使い方と一緒に、他の関数と組み合わせて使う応用編もぜひマスターしてみてください。
社員名簿から名字を抜き出す
社員名簿から名字だけを抜き出したい場合は、MID関数の文字数の引数としてFIND(ファインド)関数を活用します。



FIND関数とは、どんな関数なんですか?



指定した文字列の中から検索対象の文字を見つけて、その文字の開始位置を数値で返す関数だよ。
氏名を入力する場合、名字と名前の間にスペースを入れるケースが多いですよね。
名字のように文字数が異なる文字を抜き出したいときは、名字と名前の間に入力した「スペース」を活用します。
FIND関数で「スペース」の開始位置を数値に変換して、スペースの位置にあたる1文字分をマイナスすると名字の文字数を指定することが可能です。
まず、FIND関数の基本構文を確認してみましょう。
「=FIND(検索文字列,対象,[開始位置])」
「開始位置」は省略できるので、「検索文字列」と「文字が入力されているセル」を指定すれば大丈夫です。
文章だけだと少しわかりにくいので、実際のデータを使って確認してみましょう。


これは、「Cの1」に「Aの1」に入力されているスペースの開始位置を表示するためのFIND関数が挿入されている画像です。
FIND関数では、検索したい文字列をダブルクォーテーションで囲んで指定します。
この場合は、検索する文字列は全角スペースなので、「" "」と入力します。
検索したい文字が入力されているセルは、「A1」ですね。
FIND関数の計算結果を見ると「3」と表示されています。
これは、「A1」に入力されている「全角スペース」は、3文字目ということです。



名字の文字数によってスペースの位置が変わるから、スペース分の「1」をマイナスすれば、「佐藤」なら「2」、長谷川なら「3」が指定できるってことですね。



そのとおり。スペースの位置を関数で数字に変換しているから、名字の文字数に合わせた文字数を指定できるんだ。
これを踏まえて、社員名簿を使って名字を抜き出してみましょう。


「Iの2」のセルを選択して、MID関数の開始位置までの引数となる「=MID(C2,1,」まで入力します。



文字を検索するのが「C2」、氏名の開始位置は1文字目だから「1」になるよ。
=MID(C2,1,

FIND関数を使って、MID関数の文字数を入力します。
検索する文字列が半角スペースなので「" "」、検索するセルは「C2」を指定してFIND関数を「)」で閉じます。
その後ろにスペース分の文字数をマイナスするための「-1」を入力して、MID関数を半角かっこで閉じてください。
「=MID(C2,1,FIND(" ",C2)-1)」と入力されていることを確認して、Enterで確定します。
=MID(C2,1,FIND(" ",C2)-1)

「Iの2」のセルをクリックしなおして、すべてのセルに数式をコピーしてください。


名字の文字数に関係なく、文字を抜き出すことができました。
社員名簿から名前を抜き出す
名字の場合は名字と名前の間にあるスペースを使って文字数を指定しましたが、名前を抜き出したい場合は、開始位置はFIND関数、抜き出す文字数はFIND関数とLEN関数を組み合わせて指定します。
少し複雑になるので、データを使って実際の数式を確認してみましょう。


「Jの2」に入力されている「=MID(C2,FIND(" ",C2)+1,LEN(C2)-FIND(" ",C2))」は、名前を抜き出すための数式です。
=MID(C2,FIND(" ",C2)+1,LEN(C2)-FIND(" ",C2))


数式が複雑になっていて、どうやって入力したらいいのかわかりません。
もう少し詳しく教えてください。



関数を分解して解説していくよ。
MID関数の「開始位置」の部分に入力されているFIND関数を見てみましょう。
「FIND(" ",C2)+1」と入力されていますね。
「FIND(" ",C2)」の部分は、「C2に入力されている文字から半角スペースの位置を数字で表してください」という意味です。
最後の「+1」の部分は、FIND関数で表示された数字に「1」を足してください」という意味になります。
名字の場合は、スペースの位置の前までが名字の文字数になりますが、名前の場合はスペースの次の文字から名前が始まるため、「1」を足す必要があります。
つまり、FIND関数で表示したスペースの位置に「1」を足せば、スペースの次にある名前の1文字目を開始位置として指定できるということです。



次に、文字数の部分の関数を分解して解説するよ。
文字数を指定する場所には、「LEN(C2)-FIND(" ",C2)」と入力されていますね。
LEN関数は、引数で指定したセル番地に入力されているすべての文字数を数字で表示する関数です。
「LEN(C2)」と入力すると、「C2」に入力されているすべての文字数が数字で表示されます。
「FIND(" ",C2)」の部分は、名字と名前の間にあるスペースの位置を数字で表示していましたね。
「C2」に入力されているすべての文字数(LEN関数)からスペースまでの文字数(FIND関数)を引けば、残った数字が名前の文字数になるというわけです。



複数の関数を組み合わせる必要があるから数式がちょっと複雑になるけど、意味がわかれば入力できるようになるよ。
これを踏まえて、社員名簿から名前の部分を抜き出してみましょう。


抜き出した名前を表示するための列を作成します。


- 「=MID(」と入力
- 「C2」をクリック
- 「,(半角カンマ)」を入力


MID関数の開始位置を入力するために、FIND関数を挿入します。
カンマの後ろに「FIND(" ",C2+1)」と入力して、最後「,(半角カンマ)」を入力してください。
FIND(" ",C2)+1,

- 「LEN(C2)-FIND(" ",C2)」と入力
- MID関数を閉じる「)」を入力してEnterで確定
LEN(C2)-FIND(" ",C2))

挿入した関数をすべてのセルにコピーしてください。


名前の部分だけを正確に抜き出すことができました。
社員名簿のメールアドレスから「@」の前の部分だけを抜き出す
氏名から名字と名前を抜き出す場合は名字と名前の間のスペースを利用しましたが、メールアドレスの場合は「@」を使えば、メールアドレスのユーザー名だけを抜き出すことができます。
数式は名字の時と同じですが、「" "」を「"@"」に変更する必要があります。


メールアドレスのユーザー名だけを表示する列を作成します。
作成した列に「=MID(H2,1,FIND("@",H2)-1)」という数式を挿入します。
=MID(H2,1,FIND("@",H2)-1)

最後に数式をコピーしたら完成です。
MID関数単体の場合、取り出す文字の文字数が異なっているとすべての文字を正しく取り出すことができません。
しかし、FIND関数やLEN関数を組み合わせると途中の文字を自由に取り出せるようになるので、ぜひ挑戦してみてください。
MID関数に関するQ&A
途中の文字列を抜き出したいときはMID関数を活用しよう!
MID関数は、途中にある特定の文字列を抜き出すことができる便利な関数です。
しかし、名字や名前など文字数が異なるものを抜き出したい場合は、MID関数単体ではうまく抜き出すことができないので注意してください。
最後に、途中の文字列を抜き出す方法をおさらいしておきましょう。
- 抜き出した文字列を表示したい列を作成
- 作成した列にMID関数を挿入する
途中にある文字を抜き出したい場合は、MID関数が便利です。
本記事では、応用編としてFIND関数やLEN関数と組み合わせて、文字数が異なる文字を抜き出す方法も紹介していますので、ぜひ参考にしてみてください。