エクセルのMID関数を使って途中の文字を抜き出す方法

初心者

MID関数の使い方を教えてください。
文字を抜き出したいんですけど、うまくできません。

Dr.オフィス

MID関数は、どの位置から何文字抜き出したいのかを指定するだけでOKだよ!

MID関数は、セルに入力されている文字の中から抜き出したい文字がある場合に使用します。

文字列の途中にある特定の文字を抜き出せる関数なので、覚えておくと便利です。

MID関数を使って途中の文字を抜き出す簡単ステップ
  1. 抜き出した文字列を表示したい列を作成
  2. 作成した列にMID関数を挿入する

文字を抜き出す関数には、「MID関数」のほかに、「LEFT関数」、「RIGHT関数」があります。

抜き出したい文字の位置によって使い分けると、必要な文字だけをスムーズに抜き出すことが可能です。

今回は文字を抜き出す関数の中から、MID関数の使い方をわかりやすく解説します。

\ Officeドクター読者限定・無料Q&A /

この記事の内容でわからないことや、今すぐ解決したいOfficeのお悩みはありませんか?
Officeドクターの中の人が、公式LINEで直接ご質問にお答えします!
下のボタンをタップして、表示された入力欄からそのまま送信してくださいね。

目次

エクセルのMID関数とは文字列の途中から指定した文字数を取り出す関数

エクセルのMID(ミッド)関数は、セルに入力されている文字列の途中から指定した文字数を取り出す関数です。

LEFT関数、RIGHT関数は、文字の左端または右端を基準にして抜き出したい文字数を指定しますが、MID関数は文字の開始位置と文字数を指定することができるので、途中にある文字列を抜き出すことができます。

初心者

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

Dr.オフィス

データを使って、便利な使い方を確認してみよう!

MID関数でできること

MID関数は、開始位置と文字数を指定して、文字列の途中にある文字を抜き出す関数です。

社員コードが入力されている社員名簿
社員コードが入力されている社員名簿

例えば、上記のように社員コードが入力されている社員名簿があったとします。

社員名簿の真ん中の4桁は入社した年になっています。

MID関数を使えば途中の文字列を抜き出すことができるので、社員コードから入社した年だけを抜き出すといったことが可能です。

1つのセルに入力されている文字列から、特定の文字だけを抜き出したいときはMID関数を活用してみてください。

MID関数の基本構文と引数の覚え方

MID関数の基本構文を見てみましょう。

「=MID(文字列, 開始位置, 文字数)」

MID関数の引数は、以下の3つです。

文字列:取り出したい文字が入力されているセル番地
開始位置:取り出す文字が文字列の何番目にあるか数字で指定
文字数:取り出したい文字の数

MID関数で必要になるのは、抜き出したい文字が入力されている「セルの位置」、「取り出す文字の最初の位置」、「取り出す文字数」です。

引数の内容と順番を覚えておきましょう。

MID関数を使って文字列を取り出してみよう

初心者

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

Dr.オフィス

簡単なデータを使って、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桁の数字を抜き出してみましょう。

STEP
F列の後ろに列を挿入
F列の後ろに列を挿入
F列の後ろに列を挿入
  1. G列の上で右クリック
  2. 「挿入」を選択
STEP
挿入した列の見出しを入力
見出しを入力
見出しを入力

挿入した列の見出しを入力してください。

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

STEP
MID関数を挿入
MID関数を挿入
MID関数を挿入

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

STEP
抜き出したい文字が入力されているセルをクリック
抜き出したい文字が入力されているセルをクリック
抜き出したい文字が入力されているセルをクリック
  • 「B2」をクリック
  • 半角で「,(カンマ)」を入力
STEP
抜き出す文字の開始位置と文字数を入力
抜き出す文字の開始位置と文字数を入力
抜き出す文字の開始位置と文字数を入力

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

STEP
数式をコピーする
数式をコピーする
数式をコピーする
  1. 関数を挿入した「G2」のセルをクリック
  2. セルの枠の右下にある「■」をダブルクリックする
STEP
すべてのセルに数式がコピーされた
数式がコピーされた
数式がコピーされた

すべてのセルに数式をコピーすることができました。

エクセルのMID関数で文字を抜き出すときの注意点

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

初心者

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

Dr.オフィス

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

加工した社員名簿
加工した社員名簿

これは、氏名のセルから名字だけを抜き出せるように加工した社員名簿です。

「Iの2」には、「=MID(C2,1,2)」という関数を挿入しています。

引数の設定は、以下のとおりです。

文字を抜き出すセル:氏名が入力されている「C2」
文字を抜き出す先頭の文字の位置:名字の1文字目は1番目なので「1」
文字数:「佐藤」は2文字なので「2」に設定

「Iの7」のセルの計算結果を見てみると、「佐藤」と表示されていますね。

今度は、「Iの7」に挿入したMID関数をI列のセルにコピーしてみましょう。

I列にコピーしたMID関数
I列にコピーしたMID関数

赤枠の行に入力されている「長谷川 美穂」という名前が入力されているI列のセルの計算結果を見ると、「長谷」と表示されていますね。

これは、抜き出す文字数を「2」に設定してしまっていたことが原因です。

17行目の「林」のように名字が1文字の場合は、2文字に設定しても「林」と「空白」が表示されるので正しい名字が表示されますが、3文字の名字が混ざっていた場合は途中までしか表示されません。

「長谷川」という名字に合わせて抜き出す文字数を「3」にしてしまうと、名字が1文字の林さんは「林 漣」と表示されてしまいます。

MID関数だけで特定の文字を抜き出したい場合、抜き出したい文字数がすべて同じでないときはうまく抽出できないので注意しましょう。

他の関数と組み合わせてMID関数で文字列を抜き出す方法【応用編】

前述で解説したように、氏名やメールアドレスのように抜き出したい文字列の文字数が同じではない場合、MID関数だけで必要な文字数をうまく抜き出すことができません。

しかし、指定した文字が文字列の何番目にあるかを調べるFIND(ファインド)関数やセルに入力されているすべての文字をカウントするLEN(レン)関数を組み合わせれば、異なる文字列の中から必要な文字だけを抜き出すことが可能です。

初心者

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

Dr.オフィス

引数が少し複雑になるけど、使い方を覚えればMID関数で文字数が異なる文字を抜き出すことができるよ!

実務で文字を抜き出す場合、氏名やメールアドレスのように文字数が異なるデータから特定の部分だけを抜き出したいというケースもありますよね。

MID関数の基本的な使い方と一緒に、他の関数と組み合わせて使う応用編もぜひマスターしてみてください。

社員名簿から名字を抜き出す

社員名簿から名字だけを抜き出したい場合は、MID関数の文字数の引数としてFIND(ファインド)関数を活用します。

初心者

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

Dr.オフィス

指定した文字列の中から検索対象の文字を見つけて、その文字の開始位置を数値で返す関数だよ。

氏名を入力する場合、名字と名前の間にスペースを入れるケースが多いですよね。

名字のように文字数が異なる文字を抜き出したいときは、名字と名前の間に入力した「スペース」を活用します。

FIND関数で「スペース」の開始位置を数値に変換して、スペースの位置にあたる1文字分をマイナスすると名字の文字数を指定することが可能です。

まず、FIND関数の基本構文を確認してみましょう。

「=FIND(検索文字列,対象,[開始位置])」

「開始位置」は省略できるので、「検索文字列」と「文字が入力されているセル」を指定すれば大丈夫です。

FIND関数は、全角と半角は別のものとして認識するので、スペースやアルファベットを抜き出す場合は注意してください。

文章だけだと少しわかりにくいので、実際のデータを使って確認してみましょう。

FIND関数でスペースの開始位置を調べる
FIND関数でスペースの開始位置を調べる

これは、「Cの1」に「Aの1」に入力されているスペースの開始位置を表示するためのFIND関数が挿入されている画像です。

FIND関数では、検索したい文字列をダブルクォーテーションで囲んで指定します。

この場合は、検索する文字列は全角スペースなので、「" "」と入力します。

検索したい文字が入力されているセルは、「A1」ですね。

FIND関数の計算結果を見ると「3」と表示されています。

これは、「A1」に入力されている「全角スペース」は、3文字目ということです。

初心者

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

Dr.オフィス

そのとおり。スペースの位置を関数で数字に変換しているから、名字の文字数に合わせた文字数を指定できるんだ。

これを踏まえて、社員名簿を使って名字を抜き出してみましょう。

STEP
MID関数を挿入して「開始位置」までの引数を入力
「開始位置」までの引数を入力
「開始位置」までの引数を入力

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

Dr.オフィス

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

=MID(C2,1,
STEP
FIND関数を使ってMID関数の文字数を入力
FIND関数を使ってMID関数の文字数を入力
FIND関数を使ってMID関数の文字数を入力

FIND関数を使って、MID関数の文字数を入力します。

検索する文字列が半角スペースなので「" "」、検索するセルは「C2」を指定してFIND関数を「)」で閉じます。

その後ろにスペース分の文字数をマイナスするための「-1」を入力して、MID関数を半角かっこで閉じてください。

「=MID(C2,1,FIND(" ",C2)-1)」と入力されていることを確認して、Enterで確定します。

=MID(C2,1,FIND(" ",C2)-1)
STEP
数式をコピーする
数式をコピーする
数式をコピーする

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

STEP
名字を正しく抜き出すことができた
名字を正しく抜き出すことができた
名字を正しく抜き出すことができた

名字の文字数に関係なく、文字を抜き出すことができました。

今回はMID関数を使っていますが、左側の1文字目を基準にする場合は、LEFT関数を使うことができます。
LEFT関数の詳しい使い方は、関連記事で詳しく解説しています。

社員名簿から名前を抜き出す

名字の場合は名字と名前の間にあるスペースを使って文字数を指定しましたが、名前を抜き出したい場合は、開始位置はFIND関数、抜き出す文字数はFIND関数とLEN関数を組み合わせて指定します。

少し複雑になるので、データを使って実際の数式を確認してみましょう。

名前を取り出すための数式
名前を取り出すための数式

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

=MID(C2,FIND(" ",C2)+1,LEN(C2)-FIND(" ",C2))
初心者

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

Dr.オフィス

関数を分解して解説していくよ。

MID関数の「開始位置」の部分に入力されているFIND関数を見てみましょう。

「FIND(" ",C2)+1」と入力されていますね。

「FIND(" ",C2)」の部分は、「C2に入力されている文字から半角スペースの位置を数字で表してください」という意味です。

最後の「+1」の部分は、FIND関数で表示された数字に「1」を足してください」という意味になります。

名字の場合は、スペースの位置の前までが名字の文字数になりますが、名前の場合はスペースの次の文字から名前が始まるため、「1」を足す必要があります。

つまり、FIND関数で表示したスペースの位置に「1」を足せば、スペースの次にある名前の1文字目を開始位置として指定できるということです。

Dr.オフィス

次に、文字数の部分の関数を分解して解説するよ。

文字数を指定する場所には、「LEN(C2)-FIND(" ",C2)」と入力されていますね。

LEN関数は、引数で指定したセル番地に入力されているすべての文字数を数字で表示する関数です。

「LEN(C2)」と入力すると、「C2」に入力されているすべての文字数が数字で表示されます。

「FIND(" ",C2)」の部分は、名字と名前の間にあるスペースの位置を数字で表示していましたね。

「C2」に入力されているすべての文字数(LEN関数)からスペースまでの文字数(FIND関数)を引けば、残った数字が名前の文字数になるというわけです。

Dr.オフィス

複数の関数を組み合わせる必要があるから数式がちょっと複雑になるけど、意味がわかれば入力できるようになるよ。

これを踏まえて、社員名簿から名前の部分を抜き出してみましょう。

STEP
名前の部分だけを出力する列を作成
「名前」を抽出する列を作成
「名前」を抽出する列を作成

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

STEP
MID関数の「文字列」の引数を入力
MID関数の「文字列」の引数を入力
MID関数の「文字列」の引数を入力
  • 「=MID(」と入力
  • 「C2」をクリック
  • 「,(半角カンマ)」を入力
STEP
MID関数の開始位置の部分を入力する
MID関数の開始位置の部分を入力
MID関数の開始位置の部分を入力

MID関数の開始位置を入力するために、FIND関数を挿入します。

カンマの後ろに「FIND(" ",C2+1)」と入力して、最後「,(半角カンマ)」を入力してください。

FIND(" ",C2)+1,
STEP
MID関数の文字数の部分の関数を入力
MID関数の文字数の部分の関数を入力
MID関数の文字数の部分の関数を入力
  • 「LEN(C2)-FIND(" ",C2)」と入力
  • MID関数を閉じる「)」を入力してEnterで確定
LEN(C2)-FIND(" ",C2))
STEP
挿入した数式をコピーする
数式をコピーする
数式をコピーする

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

STEP
名前だけを抜き出すことができた
名前だけを抜き出すことができた
名前だけを抜き出すことができた

名前の部分だけを正確に抜き出すことができました。

社員名簿のメールアドレスから「@」の前の部分だけを抜き出す

氏名から名字と名前を抜き出す場合は名字と名前の間のスペースを利用しましたが、メールアドレスの場合は「@」を使えば、メールアドレスのユーザー名だけを抜き出すことができます。

数式は名字の時と同じですが、「" "」を「"@"」に変更する必要があります。

メールアドレスのユーザー名だけを抜き出す
メールアドレスのユーザー名だけを抜き出す

メールアドレスのユーザー名だけを表示する列を作成します。

作成した列に「=MID(H2,1,FIND("@",H2)-1)」という数式を挿入します。

=MID(H2,1,FIND("@",H2)-1)
数式をコピーする
数式をコピーする

最後に数式をコピーしたら完成です。

MID関数単体の場合、取り出す文字の文字数が異なっているとすべての文字を正しく取り出すことができません。

しかし、FIND関数やLEN関数を組み合わせると途中の文字を自由に取り出せるようになるので、ぜひ挑戦してみてください。

MID関数に関するQ&A

MID関数は、どんなときに使う関数ですか?

MID関数は、セルに入力されている文字列の途中にある文字を抜き出すことができる関数です。
文字列の左側にある1文字目から抜き出したいときはLEFT関数、右側にある1文字目から抜き出したい場合はRIGHT関数を使うこともできます。

エクセルで特定の文字を取り出す関数を教えてください。

文字を抜き出す関数には、今回紹介したMID関数のほかに、LEFT関数、RIGHT関数があります。

文字列の途中にある特定の文字を抜き出したい場合は、MID関数を使用します。

MID関数とFIND関数を組み合わせて使うとどうなるの?

MID関数は、文字列の途中にある特定の文字を抜き出すことができますが、抜き出す文字数を指定するため、名字や都道府県名のように文字数が異なる場合はMID関数単体ではうまく取り出すことができません。

MID関数とFIND関数を組み合わせると、例えば「北海道」、「東京」のように文字数が異なる場合でも必要な文字だけを抜き出すことができます。

使い方は、本文内で解説していますので参考にしてください。

途中の文字列を抜き出したいときはMID関数を活用しよう!

MID関数は、途中にある特定の文字列を抜き出すことができる便利な関数です。

しかし、名字や名前など文字数が異なるものを抜き出したい場合は、MID関数単体ではうまく抜き出すことができないので注意してください。

最後に、途中の文字列を抜き出す方法をおさらいしておきましょう。

おさらい
  1. 抜き出した文字列を表示したい列を作成
  2. 作成した列にMID関数を挿入する

途中にある文字を抜き出したい場合は、MID関数が便利です。

本記事では、応用編としてFIND関数やLEN関数と組み合わせて、文字数が異なる文字を抜き出す方法も紹介していますので、ぜひ参考にしてみてください。

よかったらシェアしてね!
  • URLをコピーしました!
目次