【エクセル】文字列を抽出するMID関数、LEFT関数、RIGHT関数の使い方

エクセルのLIGHT関数、LEFT関数、MID関数の使い方

Excel(エクセル)のセルに入力された文字列から特定の文字だけを抽出したいことはありませんか?

例えば、『兵庫県神戸市長田区』の住所から『兵庫県』の文字だけを抽出したり、中央の『神戸市』だけを抽出したり、後半の『長田区』だけを抽出するなどです。

この記事では、文字列を抽出する3つの関数の使い方について紹介します。

また、後半の見出しでは、FIND関数と組み合わせて好きな文字から自在に文字を抽出する方法を解説します。

エクセルで文字を抽出するとは?

エクセルで『文字を抽出』するとはどういった操作のことか説明します。

例えば、下の表のB列のセルに学生の「学年」と「組」と「氏名」が入力されています。

1つのセルに複数の情報
1つのセルに複数の情報

このセルから、下の表のように「学年」と「組」と「氏名」の情報を抽出する操作を「文字の抽出」と言います。

図解.エクセルのセルから文字を抽出するとは?
図解.エクセルのセルから文字を抽出するとは?

また、下の図のように括弧「(」と括弧「)」の間の文字を抽出することも可能です。

関数を使えば、セルの文字の真ん中を抽出
関数を使えば、セルの文字の真ん中を抽出

このように、セルから一部の情報だけを取り出して使用したい時に「文字列の抽出」を行う方法を下の見出しで解説します。

文字列を抽出する3つの関数の使い方

エクセルで文字列を抽出する3つの関数「LEFT関数」「RIGHT関数」「MID関数」を紹介します。

  • LEFT関数⇒文字を「左端から抽出」
  • RIGHT関数⇒文字を「右端から抽出」
  • MID関数⇒文字を「任意の位置から抽出したい文字数分を抽出」

【LEFT関数】文字列の先頭(左端)から抽出

LEFT関数は、文字列の先頭(左端)から指定した文字数を抽出する関数です。

LEFT(レフト)は、日本語で「左」を意味します。

構文と引数は以下のとおりです。

=LEFT(文字列, [文字数])

文字列
抜き出す文字列のセルを指定するか、直接文字列を指定します。セルを指定せず、文字列を指定する場合は「”」で囲みます。(例:B4、”3年2組鈴木一郎”)

文字数
左端から抜き出す文字数を指定するか、文字数が入力されたセルを指定します。(例:2、B4)省略も可能です。省略した場合は、「1」を入力したと見なされます。

それでは実際にLEFT関数を使って文字を抽出してみましょう。

手順1.LEFT関数を挿入

文字列を抽出するセルに、「=LEFT(」と入力します。

LEFT関数を挿入
LEFT関数を挿入

手順2.文字列のセルを選択

抜き出したいセルをクリックします。そうすると「=LEFT(B3」と1つ目の引数が指定出来ます。終わったら、次の引数を指定するために、「,」を入力しましょう。

LEFT関数の第1引数「文字列」を入力
LEFT関数の第1引数「文字列」を入力

手順3.抽出する文字数を指定

文字列の先頭から何文字抜き出したいか数えて文字数を数字で入力します。

今回は「3年2組鈴木一郎」から先頭の2文字を抽出するため、「=LEFT(B3,2」と入力します。

LEFT関数の第2引数「文字数」を入力
LEFT関数の第2引数「文字数」を入力

手順4.抽出された文字を確認

関数を確定させて、正しく左端から文字が抽出されたか確認します。以上で作業は完了です。

LEFT関数で先頭から2文字を抽出
LEFT関数で先頭から2文字を抽出

【RIGHT関数】文字列の末尾(右端)から抽出

RIGHT関数は、文字列の末尾(右端)から指定した文字数を抽出する関数です。

RIGHT(ライト)は、日本語で「右」を意味します。

構文と引数は以下のとおりです。

=RIGHT(文字列, [文字数])

文字列
抜き出す文字列のセルを指定するか、直接文字列を指定します。セルを指定せず、文字列を指定する場合は「”」で囲みます。(例:B4、”3年2組鈴木一郎”)

文字数
右端から抜き出す文字数を指定するか、文字数が入力されたセルを指定します。(例:2、B4)省略も可能です。省略した場合は、「1」を入力したと見なされます。

それでは実際にRIGHT関数を使って文字を抽出してみましょう。

手順1.RIGHT関数を挿入

文字を抽出するセルに、「=RIGHT(」と入力します。

RIGHT関数を挿入
RIGHT関数を挿入

手順2.文字列のセルを選択

抜き出したいセルをクリックします。そうすると「=RIGHT(B3」と1つ目の引数が指定出来ます。終わったら、次の引数を指定するために、「,」を入力しましょう。

RIGHT関数の第1引数「文字列」を入力
RIGHT関数の第1引数「文字列」を入力

手順3.抽出する文字数を指定

文字列の末尾から何文字抜き出したいか数えて文字数を数字で入力します。

今回は「3年2組鈴木一郎」から末尾の4文字を抽出するため、「=RIGHT(B3,4」と入力します。

RIGHT関数の第2引数「文字数」を入力
RIGHT関数の第2引数「文字数」を入力

手順4.抽出された文字を確認

関数を確定させて、正しく文字が右端から抽出されたか確認します。以上で作業は完了です。

RIGHT関数で末尾から4文字を抽出
RIGHT関数で末尾から4文字を抽出

【MID関数】文字列の真ん中を抽出

MID関数は、文字列の任意の位置から抽出したい文字数分を抽出する関数です。

MID(ミッド)は、「中央、真ん中」を意味する英語のmiddleの頭文字から来ています。

構文と引数は以下のとおりです。

=MID(文字列,開始位置,抽出する文字数)

文字列
抜き出す文字列のセルを指定するか、直接文字列を指定します。セルを指定せず、文字列を指定する場合は「”」で囲みます。(例:B4、”3年2組鈴木一郎”)

開始位置
左端から数えて何文字目から文字を抜き出すか指定します。(例:2、B4)

抽出する文字数
開始位置から抽出したい文字数を指定するか、文字数が入力されたセルを指定します。(例:2、B4)

それでは実際にMID関数を使って文字を抽出してみましょう。

今回は、「3年2組鈴木一郎」の真ん中の「2組」を抽出する手順を紹介します。

手順1.MID関数を挿入

文字を抽出するセルに、「=MID(」と入力します。

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

手順2.文字列のセルを選択

文字を抜き出したいセルをクリックします。そうすると「=MID(B3」と1つ目の引数が指定出来ます。終わったら、次の引数を指定するために、「,」を入力しましょう。

MID関数の第1引数「文字列」を指定
MID関数の第1引数「文字列」を指定

手順3.開始位置を指定

次に第2引数「開始位置」を指定します。

「3年2組鈴木一郎」の「2組」の文字を抜き出したいので、「2」は左端から3文字目にあるので、「3」を指定します。

MID関数の第2引数「開始位置」を指定
MID関数の第2引数「開始位置」を指定

手順4.抜き出す文字数を指定

次に第3引数「抜き出す文字数」を指定します。「2組」は2文字なので、「2」と指定します。

MID関数の第3引数「抜き出す文字数」を指定
MID関数の第3引数「抜き出す文字数」を指定

手順5.抽出された文字を確認

関数を確定させて、正しく真ん中の文字が抽出されたか確認します。以上で作業は完了です。

MID関数で真ん中から2文字を抽出
MID関数で真ん中から2文字を抽出

このMID関数は開始位置と抜き出す文字数が特定できている場合は、上記で説明したような使い方が可能です。

しかし、下の表のように、開始位置と抜き出す文字数がセル毎に統一性が無い場合は、どのようにMID関数を使えばよいでしょか。次の見出しでその使い方を紹介します。

MID関数の開始位置と抜き出す文字数がセル毎に異なる
MID関数の開始位置と抜き出す文字数がセル毎に異なる

文字列から任意の文字を自在に抽出する方法

下の表のB列には「氏名(部門)」の情報が入力されています。

この表から「部門」だけを抽出したくても、抜き出す文字の開始位置や文字数がバラバラなので、MID関数だけでは抽出出来ません

自在にセルの真ん中の文字を抽出する方法
自在にセルの真ん中の文字を抽出する方法

しかし、上の表の場合、抜き出したい開始文字は括弧「(」の次の文字からで、括弧「)」までの文字を抜き出したいという規則性があります。

このように規則性がある場合は、FIND関数という関数とMID関数を組み合わせて利用することで抽出が可能となります。

【FIND関数】左から何文字目かを調べる

ここでFIND関数という新たな関数の使い方を紹介します。

エクセルのFIND関数は、指定した文字が指定した位置から何文字目にあるのかを調べる関数です。

FIND関数の構文と引数は以下のとおりです。

=FIND( 文字列,対象の文字,開始位置)

それでは早速、この関数を使って、以下の表から文字を抽出するキーとなる『(』と『)』の開始位置を調べてみます。

括弧の開始位置をFIND関数で調べる
括弧の開始位置をFIND関数で調べる

手順1.FIND関数を挿入

開始文字を調べたいセルにFIND関数を挿入します。「=FIND(」

FIND関数を挿入
FIND関数を挿入

手順2.開始位置を調べたい文字を指定

FIND関数の第1引数「文字列」に、開始位置を調べたい文字を指定します。セルを指定せず、直接文字を関数内に入力する場合は、””で囲います。「=FIND("(",」

FIND関数の第1引数「文字列」を指定
FIND関数の第1引数「文字列」を指定

手順3.開始位置を調べるセルを指定

FIND関数の第2引数「対象の文字」に、開始位置を調べる文字のセルを指定します。直接セル番号を入力するか、対象のセルをクリックしてください。「=FIND("(",B3,」

FIND関数の第2引数「対象の文字」を指定
FIND関数の第2引数「対象の文字」を指定

手順4.何文字目から調べるか指定

FIND関数の第3引数「開始位置」に、B3セルの何文字目から『(』を探すか、数値で指定します。

文字の先頭からの開始位置を調べるため、「1」を指定します。「=FIND("(",B3,1」

FIND関数の第3引数「開始位置」を指定
FIND関数の第3引数「開始位置」を指定

手順5.FIND関数を確定

「Enter」キーでFIND関数を確定すると、『(』が先頭から「5」文字目にあることを調べることが出来ました。

開始文字の開始位置を調べる
開始文字の開始位置を調べる

手順6.『)』の開始位置も調べる

同様の手順で、隣のセルに括弧『)』の開始位置も調べます。「=FIND(")",B3,1)」

『)』が先頭から「9」文字目にあることを調べることが出来ました。

末尾の文字の開始位置を調べる
末尾の文字の開始位置を調べる

以上により、「鈴木一郎(経理部)」という文字列の『(』は5文字目、『)』は9文字目にあることが分かりました。

他の文字列も同様に、開始位置がそれぞれバラバラだということが分かります。

次の見出しでは、この数値とMID関数を使って「部門」の文字を抽出します。

文字を抽出(特定の文字から特定の文字まで)

それではFIND関数の結果をMID関数に使って、「部門」の文字を抽出します。

「鈴木一郎(経理部)」という文字列の『(』は5文字目(C3セル)、『)』は9文字目(D3セル)にあります。

つまり、C3セルに「1」を足した開始位置から、D3セルからC3セルを引いた数値に「1」を引いた数値までの文字を抽出すれば良いということです。

文字の位置を再確認
文字の位置を再確認

つまり、文字を抽出したいE3セルに以下のMID関数を挿入します。

=MID(B3,C3+1,(D3-C3-1))

FIND関数の結果を使ってMID関数を挿入
FIND関数の結果を使ってMID関数を挿入

そうすると、「鈴木一郎(経理部)」という文字列から「経理部」だけを抽出することが出来ました。

文字の真ん中「部門」を抽出
文字の真ん中「部門」を抽出

下のセルにもMID関数をコピペしても、同様に部門を抽出することが出来ます。

MID関数をコピペ
MID関数をコピペ

FIND関数をMID関数の中に挿入することで、1つのセルに纏めることを出来ます。

MID関数内の「C3」を「FIND("(",B3,1)」に、「D3」を「FIND(")",B3,1)」に置き換えて、以下の関数を挿入します。

=MID(B3,FIND("(",B3,1)+1,(FIND(")",B3,1)-FIND("(",B3,1)-1))

MID関数内にFIND関数を挿入
MID関数内にFIND関数を挿入

文字を抽出(特定の文字から最後まで)

特定の文字から最後の文字までを抽出することも可能です。

「鈴木一郎_経理部」という文字列から「経理部」だけを抽出する場合を紹介します。

その場合は、「_」の位置を上の見出しで紹介したFIND関数で調べて、その次の文字から多めの文字数「99」文字を抽出します。

=MID(B3,C3+1,99)

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

そうすると、下のように「_」より後ろの文字を抽出することが出来ました。

特定の文字から最後の文字までを抽出
特定の文字から最後の文字までを抽出

FIND関数をMID関数の中に挿入することで、1つのセルに纏めることを出来ます。

MID関数内の「C3」を「FIND("_",B3,1)」に」に置き換えて、以下の関数を挿入します。

=MID(B3,FIND("_",B3,1)+1,99)

MID関数内にFIND関数を挿入
MID関数内にFIND関数を挿入

文字を抽出(最初から特定の文字まで)

先頭の文字から特定の文字までを抽出することも可能です。

「鈴木一郎_経理部」という文字列から「鈴木一郎」だけを抽出する場合を紹介します。

その場合は、「_」の位置を上の見出しで紹介したFIND関数で調べて、先頭の文字からその一つ前の文字までを抽出します。

=MID(B3,1,C3-1)

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

FIND関数をMID関数の中に挿入することで、1つのセルに纏めることを出来ます。

MID関数内の「C3」を「FIND("_",B3,1)」に」に置き換えて、以下の関数を挿入します。

=MID(B3,1,FIND("_",B3,1)-1)

MID関数内にFIND関数を挿入
MID関数内にFIND関数を挿入

実例1:住所を『都道府県』と『それ以外』に分解する

LEFT関数とMID関数を用いることで、住所をセル毎に『都道府県』と『市区町村』と『それ以外』に分けることが可能です。

住所をセル毎に『都道府県』と『市区町村』と『それ以外』に分ける
住所をセル毎に『都道府県』と『市区町村』と『それ以外』に分ける

以下の記事で詳しく方法を紹介していますので、興味のある方は覗いてみて下さい。

実例2:氏名を『姓』と『名』で分解する

スペースがない氏名を『姓』と『名』に分けることも可能です。

LEFT関数、RIGHT関数、VLOOKUP関数、IF関数など、エクセルの基本的な関数を用いることで実現可能です。

氏名を『姓』と『名』に分ける
氏名を『姓』と『名』に分ける

以下の記事で詳しく方法を紹介していますので、興味のある方は覗いてみて下さい。

キーとなる文字さえあれば抽出できる!

今回は文字を抽出する3つの関数を紹介しました。

文字の先頭から抽出する場合は「LEFT関数」、文字の最後から抽出する場合は「RIGHT関数」、文字の真ん中を抽出する場合は「MID関数」を使いましょう。

また、文字列に「(」「_」などの抽出するキーとなる文字があれば、文字の位置を調べるFIND関数とMID関数を組み合わせて利用することで、自在に文字を抽出することが出来ます。

エクセル操作のいろいろな場面で利用出来る関数なので、ぜひ実践で役立ててみてください。