エクセル(Excel)の使い方/関数・数式

Excelで特定の文字列を抽出する関数の使い方

Excelで特定の文字列を抽出する様々な関数の使い方を一気にご紹介! 使う頻度の高い、中央から文字列を取り出す「MID関数」、左から文字列を取り出す「LEFT関数」、右から文字列を取り出す「RIGHT関数」、文字列を検索する「FIND関数」も登場します。

緑川 吉行

執筆者:緑川 吉行

エクセル(Excel)の使い方ガイド

Excelで特定の文字列を抽出する関数の使い方

Excelで特定の文字列を抽出する関数の使い方

文字列の置き換え自由自在」では、文字列を別な文字列に置き換えるSUBSTITUTE関数とその活用法について紹介しました。今回は、文字列から特定の文字列を取り出すときに使う関数をまとめて紹介します。使う頻度の高い関数ばかりがそろっています。ぜひ、この記事で使うコツを習得してください。

今回紹介する関数  

Excelで特定の文字列を抽出する3つの関数

文字列から特定の文字列を取り出す場合、「取り出す位置」と「取り出す文字数」を考えます。この「取り出す位置」によって、3つの関数を使い分けます。
 


左側から文字列を取り出すときは「LEFT関数」、右側から取り出すときは「RIGHT関数」、その間の中央部分から取り出すには「MID関数」を使います。MID関数の「MID」は英語の中央「middle」の頭3文字。3つとも関数名がわかりやすいので覚えやすいと思います。
 

左側から文字列を取り出すLEFT関数

まずはLEFT関数から見ていきましょう。構文は次の通りです。
 


例えば、セルB2に入力されている「あいうえお」という文字列から、左側3文字の「あいう」を取り出してセルC2に表示する場合、セルC2に次のようにLEFT関数を入力します。


結果は下図の通り。左側3文字が取り出されていますね。
 

右側から文字列を取り出すRIGHT関数

続いてRIGHT関数です。構文は次の通りです。
 


LEFT関数とほぼ同じなので、問題ないと思います。先ほどのサンプルで、セルB2の「あいうえお」から右側の「うえお」を取り出してセルC3に表示する場合、セルC3に次のようにRIGHT関数を入力します。


結果は下図の通り。右側の3文字が取り出されていますね。
 

中央から文字列を取り出すMID関数

3つ目はMID関数です。LEFT関数とRIGHT関数は、文字列の「端」から取り出す関数だったので、セル番地以外に文字数を指定するだけでした。MID関数の場合は「中央」の文字列を取り出すので、文字数と併せて「左端から数えて何文字目から取り出すのか」を指定します。構文は次の通りです。
 


先ほどのサンプルで、セルB2の「あいうえお」から中央の「いうえ」を取り出してセルC4に表示する場合、セルC4に次のようにMID関数を入力します。「い」から取り出すので開始位置は「2」です。
 


結果は下図の通り。中央の3文字が取り出されていますね。


なお、取り出す文字数を、文字数ではなく「バイト数」で指定する場合は、関数名の末尾に「B」が付いた「LEFTB関数」「RIGHTB関数」「MIDB関数」を使います(今回は文字数で指定するので使用しません)。
 

取り出す文字数を自在に指定するために

これまでご覧頂いたサンプルでは、取り出す文字数を直接指定していました。しかし、実際には、取り出す文字数がわからないこともあります。例えば、次のような「-(ハイフン)」を含む文字列を考えてみましょう。ここから「-」より左側の文字列だけを取り出したいのですが、取り出す文字数にバラツキがあります。


この場合、「-」が左端から何文字目にあるのかがわかれば解決しますね。その文字位置から「1」引いた数が取り出したい文字数となるからです。
 


そこで紹介したいのが「FIND関数」です。
 

文字列を検索するFIND関数

FIND関数は、文字列内を検索して、指定した文字が左端から何文字目にあるのかを求める関数です。構文は次の通りです。
 


例えば、セルB2に入力されている「あいうえおあいうえお」で、「う」を検索してその文字位置をセルC2に表示する場合、セルC2に次のように入力します。
 


結果は次の通り。「う」は2つありますが、最初に検索された「う」の文字位置「3」が表示されています。この「最初に検索された文字位置」が表示されるところも注意すべきポイントです。
 
 

同じ文字を検索したい場合

ちなみに、2つ目の「う」の文字位置を検索したい場合はどうすればよいのでしょうか。
その場合は、FIND関数の3つ目の引数「開始位置」を利用します。この開始位置に、『1つ目の「う」の位置の次の文字位置』を指定することで2文字目の「う」を検索できます。つまり、FIND関数を入れ子にするわけです。
 


この数式をセルC3に入力した結果は次の通りです。2つ目の「う」の位置「8」が表示されています。今回の解説では利用しないテクニックですが、覚えておくと良いと思います。
 
 

LEFT関数とFIND関数の組み合わせ技

それでは、FIND関数の説明の冒頭でご覧頂いたサンプルを使って、LEFT関数とFIND関数の組み合わせ技を紹介しましょう。目的は「-」より左側の文字列を取り出して表示することです。


まず、左側の文字列を取り出すにはLEFT関数を使います。そして、取り出す文字数を指定するところでFIND関数を使います。FIND関数で求められる「-」の文字位置から「1」引いた数値が「取り出す文字数」になります。このように「文字位置」の数値を「取り出す文字数」となるように加工して利用するところがポイントです。


この数式を、取り出した文字列を表示するセルB2~セルB5に入力します。セルB2に入力した数式をオートフィルでコピーすると良いでしょう。結果は下図の通り、「-」より左側の文字列が取り出されていますね。様々な文字数にもキチンと対応できています。
 
 

右側の文字列を取り出すにはLEN関数を活用

では、「-」より右側の文字列を取り出すにはどうすればよいでしょうか?やはり、取り出す文字数をどのように算出するかがポイントになります。

下図をご覧下さい。右側の文字数は、文字列の総文字数から「-」の文字位置の数値を引くことで求められることがわかりますね。
 


文字列の総文字数を求めるには「LEN関数」を使います。構文は次の通りです。
 


右側の文字数を求める数式は、次のようになります。


したがって、右側の文字列を取り出す数式は下図のようになり、この数式をセルC2~C5に入力すると、右側の文字列が取り出されて表示されます。
 
 

SUBSTITUTE関数を利用する方法

右側の文字列を取り出す方法として、SUBSTITUTE関数を使う方法もあります。この場合、『もとの文字列』内の『取り出した左側の文字列に「-」をつなげた文字列』を『""(長さ0の文字列)』に置き換えます。
 


したがって、入力する数式は次のようになります。
 


先ほどのサンプルのセルC2~C5にこの数式を入力してみました。同じ結果が表示されていますね。
 

【関連記事】
【編集部おすすめの購入サイト】
楽天市場で Excel 関連の商品を見るAmazon で Excel 関連の商品を見る
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます