Microsoft Excel(エクセル)のセルに入力された文字列から、特定の文字だけを抽出したいことはありませんか?
例えば、『兵庫県神戸市長田区』の住所から『兵庫県』の文字だけを抽出したり、中央の『神戸市』だけを抽出したり、後半の『長田区』だけを抽出するなどです。
この記事では、文字列を抽出するMID関数、LEFT関数、RIGHT関数の使い方と事例について紹介します。
また、後半の見出しでは、FIND関数と組み合わせて、指定した文字から自在に文字を抽出する方法を解説します。
エクセルで文字を抽出するとは?
エクセルで『文字を抽出』するとはどういった操作のことか説明します。
例えば、下の表のB列のセルに学生の「学年」と「組」と「氏名」が入力されています。
このセルから、下の表のように「学年」と「組」と「氏名」の情報を抽出する操作を「文字の抽出」と言います。
また、下の図のように、括弧「(」と括弧「)」の間の文字だけを抽出する、といったことも可能です。
このように、セルから一部の情報だけを取り出す「文字列の抽出」方法について、下の見出しで具体的に解説していきます。
文字列を抽出する3つの関数の使い方
エクセルで文字列を抽出する3つの関数「LEFT関数」「RIGHT関数」「MID関数」を紹介します。
- LEFT関数⇒文字を「左端から抽出」
- RIGHT関数⇒文字を「右端から抽出」
- MID関数⇒文字を「任意の位置から抽出したい文字数分を抽出」
【LEFT関数】文字列の先頭(左端)から抽出
LEFT関数は、文字列の先頭(左端)から指定した文字数を抽出する関数です。
LEFT(レフト)は、日本語で「左」を意味します。
構文と引数は以下のとおりです。
=LEFT(文字列, [文字数])
文字列
抜き出す文字列のセルを指定するか、直接文字列を指定します。セルを指定せず、文字列を指定する場合は「”」で囲みます。(例:B4、”3年2組鈴木一郎”)
文字数
左端から抜き出す文字数を指定するか、文字数が入力されたセルを指定します。(例:2、B4)省略も可能です。省略した場合は、「1」を入力したと見なされます。
それでは実際にLEFT関数を使って文字を抽出してみましょう。
手順1.LEFT関数を挿入
文字列を抽出するセルに、「=LEFT(」と入力します。
手順2.文字列のセルを選択
文字を抜き出したいセルをクリックします。そうすると「=LEFT(B3」と1つ目の引数が指定出来ます。終わったら、次の引数を指定するために、「,」を入力します。
手順3.抽出する文字数を指定
文字列の先頭から何文字抜き出したいか数えて文字数を数字で入力します。
今回は「3年2組鈴木一郎」から先頭の2文字を抽出するため、「=LEFT(B3,2」と入力します。
手順4.抽出された文字を確認
LEFT関数を確定させて、正しく左端から文字が抽出されるか確認します。そうすると、「3年2組鈴木一郎」という文字から、「3年」という文字を抽出することができました。以上で作業は完了です。
【RIGHT関数】文字列の末尾(右端)から抽出
RIGHT関数は、文字列の末尾(右端)から指定した文字数を抽出する関数です。
RIGHT(ライト)は、日本語で「右」を意味します。
構文と引数は以下のとおりです。
=RIGHT(文字列, [文字数])
文字列
抜き出す文字列のセルを指定するか、直接文字列を指定します。セルを指定せず、文字列を指定する場合は「”」で囲みます。(例:B4、”3年2組鈴木一郎”)
文字数
右端から抜き出す文字数を指定するか、文字数が入力されたセルを指定します。(例:2、B4)省略も可能です。省略した場合は、「1」を入力したと見なされます。
それでは実際にRIGHT関数を使って文字を抽出してみましょう。
手順1.RIGHT関数を挿入
文字を抽出するセルに、「=RIGHT(」と入力します。
手順2.文字列のセルを選択
文字を抜き出したいセルをクリックします。そうすると「=RIGHT(B3」と1つ目の引数が指定出来ます。終わったら、次の引数を指定するために、「,」を入力しましょう。
手順3.抽出する文字数を指定
文字列の末尾から何文字抜き出したいか数えて文字数を数字で入力します。
今回は「3年2組鈴木一郎」から末尾の4文字を抽出するため、「=RIGHT(B3,4」と入力します。
手順4.抽出された文字を確認
RIGHT関数を確定させて、正しく文字が右端から抽出されたか確認します。そうすると、「3年2組鈴木一郎」という文字から、「鈴木一郎」という文字を抽出することができました。以上で作業は完了です。
【MID関数】文字列の真ん中を抽出
MID関数は、文字列の指定した位置から抽出したい文字数分の文字を抽出する関数です。
MID(ミッド)は、「中央、真ん中」を意味する英語のmiddle(ミドル)の頭文字からきています。
構文と引数は以下のとおりです。
=MID(文字列,開始位置,抽出する文字数)
文字列
抜き出す文字列のセルを指定するか、直接文字列を指定します。セルを指定せず、文字列を指定する場合は「”」で囲みます。(例:B4、”3年2組鈴木一郎”)
開始位置
左端から数えて何文字目から文字を抜き出すか指定します。(例:2、B4)
抽出する文字数
開始位置から抽出したい文字数を指定するか、文字数が入力されたセルを指定します。(例:2、B4)
それでは実際にMID関数を使って文字を抽出してみましょう。
今回は、「3年2組鈴木一郎」の真ん中の「2組」を抽出する手順を紹介します。
手順1.MID関数を挿入
文字を抽出するセルに、「=MID(」と入力します。
手順2.文字列のセルを選択
文字を抜き出したいセルをクリックします。そうすると「=MID(B3」と1つ目の引数が指定出来ます。終わったら、次の引数を指定するために、「,」を入力しましょう。
手順3.開始位置を指定
次に第2引数「開始位置」を指定します。
「3年2組鈴木一郎」の「2組」の文字を抜き出します。「2組」の「2」は左端から3文字目にあるので、「3」を指定します。
手順4.抜き出す文字数を指定
次に第3引数「抜き出す文字数」を指定します。「2組」は2文字なので、「2」と指定します。
手順5.抽出された文字を確認
MID関数を確定させて、正しく真ん中の文字が抽出されたか確認します。そうすると、「3年2組鈴木一郎」という文字から、中央の「2組」という文字を抽出することができました。以上で作業は完了です。
このMID関数は開始位置と抜き出す文字数が特定できている場合は、上記で説明したような使い方が可能です。
しかし、下の表のように、開始位置と抜き出す文字数がセル毎に統一性が無い場合は、どのようにMID関数を使えばよいでしょか。次の見出しでその使い方を紹介します。
文字列から指定した文字を自在に抽出する方法
下の表のB列には「氏名(部門)」の形式でデータが入力されています。
この表から括弧の中の「部門」だけをMID関数で抽出したくても、抜き出す文字の開始位置や文字数がバラバラなので、MID関数だけでは抽出出来ません。
しかし、この表の場合、抜き出したい開始文字は括弧「(」の次の文字からで、括弧「)」までの文字を抜き出したいという規則性があります。
このように規則性がある場合は、FIND関数という関数とMID関数を組み合わせて利用することで抽出が可能となります。
【FIND関数】指定した文字が何文字目かを調べる
ここでFIND関数という、もう一つの関数の使い方を紹介します。
FIND(ファインド)は、日本語で「見つける」を意味します。
つまり、エクセルのFIND関数は、指定した文字が指定した位置から何文字目にあるのかを調べる関数です。
FIND関数の構文と引数は以下のとおりです。
=FIND( 文字列,対象の文字,開始位置)
第1引数:文字列
見つけたい文字列を指定します。「A」という文字を見つけたい時は、ダブルクォーテーションで囲んで「”A”」と入力します。(例:”A”)
第2引数:対象の文字
第1引数で指定した文字を見つけたいセルを指定します。(例:A1、B4)
第3引数:開始位置
対象の文字の何文字目から探したいかを指定します。「1」と入力すると、セルの先頭から文字が検索されます。(例:1、3)
それでは早速、このFIND関数を使って、以下の表から文字を抽出するキーとなる『(』と『)』の文字の位置を調べてみます。
手順1.FIND関数を挿入
文字の位置を調べたいセルにFIND関数を挿入します。「=FIND(」
手順2.位置を調べたい文字を指定
FIND関数の第1引数「文字列」に、文字の位置を調べたい文字を指定します。「(」を探したいので、「=FIND("(",」と入力します。ダブルクォーテーション(”)で囲うことを忘れないようにしてください。
手順3.位置を調べるセルを指定
FIND関数の第2引数「対象の文字」に、位置を調べるセルを指定します。B3セルの中の『(』の位置を調べたいので、B3セルをクリックするか、直接「B3」と入力してくださいしてください。「=FIND("(",B3,」
手順4.何文字目から調べるか指定
FIND関数の第3引数「開始位置」に、B3セルの何文字目から『(』を探すかを数値で指定します。文字の先頭からの位置を調べるため、「1」を指定します。
=FIND("(",B3,1)
手順5.FIND関数を確定
「Enter」キーでFIND関数を確定すると、『(』が先頭から「5」文字目にあることを調べることが出来ました。
手順6.『)』の開始位置も調べる
同様の手順で、括弧『)』の位置をFIND関数を使って調べます。そうすると、『)』が先頭から「9」文字目にあることを調べることが出来ました。「=FIND(")",B3,1)」
以上の作業により、B3セルの「鈴木一郎(経理部)」という文字の場合は、『(』は5文字目、『)』は9文字目にあることが分かりました。
B列の他の文字列も同様に、『(』と『)』の文字の位置を数値で表示させます。
次の見出しでは、この数値とMID関数を使って「部門」の文字を抽出します。
文字を抽出(特定の文字から特定の文字まで)
FIND関数によって、『(』と『)』の文字の位置を数値で調べることができました。
今度は、MID関数を使って、「鈴木一郎(経理部)」の中の「経理部」という文字だけを抽出します。
『(』は5文字目(C3セル)、『)』は9文字目(D3セル)にあります。
つまり、C3セルに「1」を足した文字位置から、D3セルからC3セルを引いた数値に「1」を引いた数値までの文字を抽出すれば「経理部」という文字が抽出できる、ということです。
そのため、文字を抽出したいE3セルに以下のMID関数を挿入します。
=MID(B3,C3+1,(D3-C3-1))
そうすると、「鈴木一郎(経理部)」という文字列から「経理部」だけを抽出することが出来ました。
下のセルにも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))
文字を抽出(特定の文字から最後まで)
特定の文字から最後の文字までを抽出することも可能です。
「鈴木一郎_経理部」という文字列から「経理部」だけを抽出する場合を紹介します。
その場合は、「_」の文字位置を上の見出しで紹介したFIND関数で調べてから、MID関数を使って、その次の文字から多めの文字数「99」文字を抽出します。
=MID(B3,C3+1,99)
そうすると、下のように「_」より後ろの文字を抽出することが出来ました。この説明では、MID関数を用いましたら、RIGHIT関数で末尾から「_」の位置までの文字を抽出することもできます。
FIND関数をMID関数の中に挿入することで、1つのセルに纏めることを出来ます。
MID関数内の第2引数を「FIND("_",B3,1)」に」に置き換えて、以下の関数を挿入します。
=MID(B3,FIND("_",B3,1)+1,99)
文字を抽出(先頭から特定の文字まで)
先頭の文字から特定の文字までを抽出することも可能です。
「鈴木一郎_経理部」という文字列から「鈴木一郎」だけを抽出する場合を紹介します。
その場合は、「_」の位置を上の見出しで紹介したFIND関数で調べてから、MID関数で先頭の文字からその一つ前の文字までを抽出します。
=MID(B3,1,C3-1)
FIND関数をMID関数の中に挿入することで、1つのセルに纏めることを出来ます。
MID関数内の第2引数を「FIND("_",B3,1)」に」に置き換えて、以下の関数を挿入します。
=MID(B3,1,FIND("_",B3,1)-1)
事例1:住所から『都道府県』と『市区町村』を抽出する
文字を抽出する事例(実例)を紹介します。
LEFT関数とMID関数を用いることで、住所をセル毎に『都道府県』と『市区町村』と『それ以外』に分けることが可能です。
以下の記事で詳しく方法を紹介していますので、興味のある方は覗いてみて下さい。
事例2:氏名から『姓』と『名』を抽出する
スペースが間に挟まっていない氏名から『姓』と『名』を抽出することもできます。
氏名リストをWEBサイトからダウンロードし、LEFT関数、RIGHT関数、VLOOKUP関数、IF関数など、エクセルの基本的な関数を用いることで実現可能です。
以下の記事で詳しく方法を紹介していますので、興味のある方は覗いてみて下さい。
事例3:数字混合のランダムなパスワードを作成する
エクセルで英数字混合のランダムなパスワードを作成することができます。
使用する関数は、文字の指定した位置から文字数を切り出して表示できる『MID関数』、ランダムな整数を作成する『RANDBETWEEN関数』と、文字数を数える『LEN関数』の3つを利用します。
作成したパスワードは、ファンクションキー『F9』を押すごとにランダムに自動で変化します。
以下の記事で詳しい作り方を紹介していますので、参考にしてください。
事例4:MID関数とCELL関数でシート名をセル表示する
下の図のように、ワークシート名をセルに自動で表示させて、任意の文字を前後に追加させる方法があります。
利用する関数は、この記事で紹介したMID関数とFIND関数に加えて、セルの位置情報を表示するCELL関数を使います。
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31)
文字を追加する場合は、「&」演算子を利用します。以下の記事で詳しい関数の作り方を紹介していますので、参考にしてください。
「キーとなる文字」があれば文字は抽出できる!
今回は文字を抽出するMID関数、LEFT関数、RIGHIT関数の3つの関数と、文字の位置を調べるFIND関数の使い方を紹介しました。
文字の先頭から抽出する場合は「LEFT関数」、文字の最後から抽出する場合は「RIGHT関数」、文字の真ん中を抽出する場合は「MID関数」を使いましょう。
また、文字列に「(」「_」などの抽出するキーとなる文字があれば、文字の位置を調べるFIND関数とMID関数を組み合わせて利用することで、自在に文字を抽出することが出来ます。
エクセル操作のいろいろな場面で利用出来る関数なので、ぜひ実践で役立ててみてください。