• 公開日:

エクセルで特定の文字から特定の文字まで抽出する方法

先方の会社名、部署、個人名など複数の情報が同一のセルに入力されている際に、必要情報だけを別のセルに抽出することで、より細かく管理を行えるようにしたい場合があるかと思います。

この記事では、エクセルに入力されているデータのうち、特定の文字から特定の文字まで抽出する方法をご紹介します。

関数を使った数式を用いることで簡単に抽出を行えますので、入力データが大量にある場合にも、ぜひお役立てください。

エクセルで特定の文字から特定の文字まで抽出する方法

MID関数を使って、入力されているデータのうち、特定の文字から特定の文字まで抽出する方法をご紹介します。

データが入力されている

今回は上記画像B2セルに入力されている「東京都渋谷区1234-567」から「渋谷区」を抽出します。

数式を入力する

任意のセル(例:D2セル)に「=MID(B2,4,3)」を入力し、Enterを押します。

MID関数書式は「=MID(文字列,開始位置,文字数)」です。

「文字列」には、抽出元のデータが入力されているセル(B2)を入力します。

「開始位置」は抽出したいデータの先頭文字が左から何文字目か(4)を指定します。

そして「文字数」には、開始位置に指定した文字を基準に抽出したい文字数(3)を指定します。

今回の「=MID(B2,4,3)」は、B2セルに入力されているデータの4文字目(渋)を基準に、3文字抽出するという意味になります。

MID関数の詳細については以下の記事をご覧ください。

ExcelのMID関数の使い方|任意の位置から指定された文字数を抽出

抽出できた

入力した数式により、D2セルに「渋谷区」と表示されました。

MID関数を使って、入力されているデータのうち、特定の文字から特定の文字まで抽出することができました。

FIND関数を組み合わせて抽出する方法

入力されているデータの文字数が多く、数えることが難しい場合には、MID関数とFIND関数を組み合わせることで、簡単に特定の文字から特定の文字までのデータを抽出することができます。

詳しい方法は以下の通りです。

データが入力されている

今回は上記画像B2セルに入力されている「東京都渋谷区1234-567シルバーリーフハイツ505号室」から「シルバーリーフハイツ」を抽出します。

数式を入力する

任意のセル(例:D2セル)に「=MID(B2,FIND("シ",B2),FIND("505",B2)-FIND("シ",B2))」を入力し、Enterを押します。

MID関数書式は「=MID(文字列,開始位置,文字数)」です。

「文字列」には、抽出元のデータが入力されているセル(B2)を入力します。

そして「開始位置」「文字数」に、FIND関数を用いて「何文字目を基準に何文字分抽出するか」を指定します。

FIND関数の書式は「=FIND(検索文字列,対象,[開始位置])」です。

まずMID関数の「開始位置」には、「検索文字列」に抽出したいテキストの最初の文字、「対象」に抽出元のデータが入力されているセルがそれぞれ入力された数式「FIND("シ",B2)」を挿入します。

こうすることで、B2セルのデータ左端(文頭)を基準に「シ」までの文字数(15)を求めることができます。

次にMID関数の「文字数」にて、FIND関数を用いた数式同士を「-」することで、開始位置から何文字分抽出するかを指定します。

1つ目の数式「FIND("505",B2)」では、「検索文字列」に抽出したいテキストの直後に入力されているデータ、「対象」に抽出元のデータが入力されているセルをそれぞれ入力します。

2つ目の数式「FIND("シ",B2」では、「検索文字列」に抽出したいテキストの文頭、「対象」に抽出元のデータが入力されているセルをそれぞれ入力します。

FIND関数の詳細については以下の記事をご覧ください。

ExcelのFIND関数の使い方|文字列が最初に現れる位置を検索

今回の「FIND("505",B2)-FIND("シ",B2)」は、「505の5までの文字数(25)-シまでの文字数(15)」という意味になり、MID関数の「文字数」には「10」が入力されることになります。

そのため「=MID(B2,FIND("シ",B2),FIND("505",B2)-FIND("シ",B2))」は、B2セルに入力されているデータの15文字目を基準に、10文字分が抽出されます。

抽出できた

入力した数式により、D2セルに「シルバーリーフハイツ」と表示されました。

MID関数、FIND関数を組み合わせることで、入力されているデータのうち、特定の文字から特定の文字まで抽出することができました。

TEXTAFTER関数とTEXTBEFORE関数で抽出する方法

Microsoft 365以降のバージョンでのみ「TEXTAFTER関数」「TEXTBEFORE関数」という関数を利用することができます。

TEXTAFTER関数は、参照したデータのうち、指定した文字の後に入力されているデータを抽出する関数です。

TEXTBEFORE関数は、参照したデータのうち、指定した文字の前に入力されているデータを抽出する関数です。

そのため、TEXTAFTER関数とTEXTBEFORE関数を組み合わせることで、非常にシンプルな数式で簡単に特定の文字から特定の文字までのデータを抽出することができます。

詳しい方法は以下の通りです。

データが入力されている

今回はTEXTAFTER関数とTEXTBEFORE関数を組み合わせることで、上記画像B2セルに入力されている「東京都渋谷区1234-567シルバーリーフハイツ505号室」から、「シルバーリーフハイツ」を抽出します。

数式を入力する

任意のセル(例:D2セル)に「=TEXTAFTER(TEXTBEFORE(B2,"505"),"567")」を入力し、Enterを押します。

TEXTAFTER関数の書式は「=TEXTAFTER(text,delimiter,[instance_num], [match_mode], [match_end], [if_not_found])」です。

ここでは「text」「delimiter」のみ指定します。

「text」にはTEXTBEFORE関数を用いて参照するデータを指定し、「delimiter」には「〇より後」という条件になる文字("567")を指定します。

次に、TEXTBEFORE関数についてご説明します。

TEXTBEFORE関数の書式は「=TEXTBEFORE(text,delimiter,[instance_num], [match_mode], [match_end], [if_not_found])」です。

TEXTBEFORE関数も同様に、「text」「delimiter」のみ指定します。

「text」には抽出元のデータが入力されているセル(B2)を入力し、「delimiter」には「〇より前」という条件になる文字("505")を指定します。

今回の「=TEXTAFTER(TEXTAFTER関数(B2,"505"),"567")」は、B2セルのデータのうち、567の後から505の前までのデータを抽出するという意味になります。

抽出できた

入力した数式により、D2セルに「シルバーリーフハイツ」と表示されました。

TEXTAFTER関数とTEXTBEFORE関数を組み合わせることで、入力されているデータのうち、特定の文字から特定の文字まで抽出することができました。