エクセルのセル内に入力した文字列の中から、特定の文字列を取り出す方法をご紹介します。今回は文字列を抽出する関数がいくつか紹介します。LEFT関数、RIGHT関数、MID関数などの基本的な使い方と、FIND関数と組合わせてやや複雑な抽出方法もご紹介します。
目次(ページコンテンツ)
抽出する文字数が固定の場合の抽出方法
指定した文字数の文字を抽出したいときなど、取り出したい文字数が決まっている場合に、その位置によって関数を使い分けます。
文字列の左(先頭)から抽出するLEFT関数
- 文字列の左(先頭)から文字列を取り出すときは、LEFT関数を使います。
- LEFT関数は「=LEFT(文字列,文字数)」で構成され、文字列の先頭から指定した文字数を返します。
- ここではB2セルの文字列から、先頭3文字を取り出してC2に表示させます。
- C2セルに「=LEFT(B2,3)」と入力します。
- 先頭から3文字の「東京都」が表示されました。
文字列の右(末尾)から抽出するRIGHT関数
- 文字列の右(末尾)から文字列を取り出すときは、RIGHT関数を使います。
- この関数は「=RIGHT(文字列,文字数)」で構成され、文字列の末尾から指定された数の文字を返します。
- ここではB2セルの文字列から、末尾3文字を取り出してC2に表示させます。
- C2セルに「=RIGHT(B2,3)」と入力し、「Enter」キーを押します。
- 末尾から3文字の「芝公園」が表示されました。
文字列の右(中央)から抽出する場合のMID関数
- 文字列の途中から文字列を抽出するときは、MID関数を使います。
- MID関数は「=MID(文字列,開始位置,文字数」の構成で、文字列の指定された位置から指定された数の文字を返します。
- C2セルに「=MID(B2,4m2)」と入力して「Enter」キーを押します。
- B2セルの文字列の左端4番目の「港」から2つの文字「港区」が抽出されました。
抽出する文字が変動する場合の抽出方法
上記では抽出する文字数は固定でしたが、抽出する文字数が変動している場合で特定の文字を抽出する方法をご紹介します。ここではダミーのメールアドレスを用意して、FIND関数とLEFT関数の組合せを解説します。
文字の左(先頭)から検索文字までの文字列を抽出する
- 住所や電話番号やメールアドレスなど、抽出したい文字列に「@」や「-」に「県」など共通した文字がある場合、FIND関数を使って文字を抽出していきます。
- ここでは、メールアドレスを例に解説します。
- FIND関数は、「=FIND(検索文字列,対象,[開始位置])」で構成されます。
- 関数で指定した文字列を検索し、その文字列があらわれる位置を左端から数えて、その番号を返します。
- [開始位置]は省略することができ、省略の場合は1を指定したとみなされます。
- C2セルに「=FIND(”@”,B2)」と入力し、「Enter」キーを押します。
- FIND関数を入力したC2セルに、検索に指定した「@」をB2セルの文字列から検索し、左端から5番目であることから「5」が表示されました。
- B2をオートフィルして関数式をコピーします。
- それぞれのセルにある文字列の、検索した「@」の左端からの位置を数字で返します。
- この数字を利用して、LEFT関数、RIGHT関数、MID関数、FIND関数などと組合わせることで、文字数が変動する場合でも抽出する方法の応用に使います。
- 上記のようにFIND関数で検索の「@」が左からの位置がわかるので、FIND関数の結果から「-1」することで左端から検索までの文字数を算出することができます。
- C2セルに「=LEFT(B2,FIND(“@”,B2)-1)」と入力し、「Enter」キーを押します。
- @までの文字列「abcd」が出力されました。
- オートフィルを使用して関数式をコピーします。
文字列の右(末尾)から検索文字までの文字列を抽出する
- 上記のように左からではなく、検索文字の「@」から文字列の末尾までを抽出する場合は、RIGHT関数を使いますが、RIGHT関数とFIND関数の組合せだけでは正しい結果が得られません。
- 全体の文字数から検索文字までの文字数を引いた数(位置)を差し引くことでRIGHT関数で指定する文字を算出することがでるわけです。
- 全体の文字数はLEN関数を使います。
- LEN関数はカッコ内にセル番号を指定します。
- C2セルに「=RIGHT(B2,LEN(B2)-Find(“@”,B2))」を入力し、「Enter」キーを押します。
- 検索文字「@」から末尾までの文字列が表示されました。
- オートフィルを使ってC2の関数式をコピーします。
セルの文字から特定の範囲の文字列を抽出する
- 下図のように、セルの文字から特定の範囲の文字列ですから、文字の間の文字列を抽出することになりますので、MID関数を使います。しかし、MID関数だけですと文字数を算出することができません。
- MID関数は「=MID(文字列,開始位置,文字数)」の構成ですから、開始位置と文字数をFIND関数で位置を算出します。
- 開始位置のFIND関数に1を加えて、さらに”@”の位置から”.”(カンマ)の位置から1を引くことでその間の文字数を算出します。
- C2セルに「=MID(B2,FIND(“@”,B2)+1,FIND(“.”,B2)-1-FIND(“@”,B”)」と入力し、「Enter」キーを押します。
- “@”から”.”の範囲の文字列が抽出できました。
- オートフィルを使って入力した関数式をコピーします。
私の感想
抽出する文字が変動する場合にFIND関数を使ってお目当ての文字の位置の数字を使うことで、つまりはこれをLEFT関数、RIGHT関数、MID関数と組合わせて対応することは、慣れないとやや難解に感じるかも知れません。
それでも基本の文字列関数の引数をFIND関数の結果を利用すると考えると、組み合わせの様子が理解しやすくなるかと思います。
文字列関数は扱いやすい関数です、ぜひ今回の方法を参考に関数の組合せにも馴染まれてください。
(marusblog記事紹介)
http://marus.info/excel-space-dekete/
http://marus.info/excel-printing-001/
http://marus.info/clear-error-message/
今回のまとめ
エクセルのセル内の文字列の中から、特定の文字を取り出す方法をご紹介しました。
抽出する文字数が固定の場合の抽出方法は、文字関数の基本でありますLEFT関数、RIGHT関数、MID関数で求めることができました。
抽出する文字が変動する場合は、文字関数の基本関数とFIND関数の組合せで対応する方法をご紹介しました。また、セルの文字から特定範囲の文字列を抽出する方法も、同じくFIND関数の組合せで出力することができました。
データベースなど情報量が多い時ほど、今回ご紹介の関数を使って文字の抽出を行えるようになります。
文字関数を使った文字抽出ができるようになると、持ち合わせのデータをより活かしたデータ活用につながります。
ぜひお試しください。
いかがでしたでしょうか。
最後まで読んでくださりありがとうございます。人気ブログランキングに参加中。こちらクリックして頂けましたらうれしく思います。
↓↓↓
Microsoft Officeランキング