- 公開日:
Excelで特定の文字より前を抽出する方法
この記事では、Excelに入力されているデータから、特定の文字より前のデータを抽出する方法をいくつかご紹介します。
どの方法も関数を用いた数式を入力する必要がありますが、誰でも簡単に扱えるものとなっていますので、初心者の方も安心してお試しいただけます。
ぜひ「住所録から都道府県のみを取り出したい」「名前データを名字だけでまとめたい」場合などにご活用ください。
Excelで特定の文字より前を抽出する方法
入力されているデータから、LEFT関数を使って特定の文字より前を抽出する方法をご紹介します。
今回は上記画像B2セルに入力されている「東京都渋谷区1234-567」から「東京都渋谷区」を抽出します。
任意のセル(例:D2セル)に「=LEFT(B2,6)」を入力し、Enterを押します。
LEFT関数の書式は「=LEFT(文字列,[文字数])」です。
「文字列」には、抽出元のデータが入力されているセル(B2)を入力します。
そして「文字数」に、抽出元データの左側(文頭)を基準に抽出したい文字数(6)を指定します。
今回の「=LEFT(B2,6)」は、B2セルに入力されているデータの左側から6文字分を抽出するという意味になります。
LEFT関数の詳細については以下の記事をご覧ください。
入力した数式により、D2セルに「東京都渋谷区」と表示されました。
LEFT関数を使って、入力されているデータから特定の文字より前を抽出することができました。
関数を組み合わせて抽出する方法
入力されているデータの文字数が多く、数えることが難しい場合には、LEFT関数、FIND関数を組み合わせることで、簡単に特定の文字以前のデータを抽出することができます。
詳しい方法は以下の通りです。
今回は上記画像B2セルに入力されている「東京都渋谷区1234-567シルバーリーフハイツ505号室」から、「7」以前の「東京都渋谷区1234-567」を抽出します。
任意のセル(例:D2セル)に「=LEFT(B2,FIND("7",B2))」を入力し、Enterを押します。
数式については、以下の「関数を組み合わせて抽出する数式について」セクションで詳しくご説明します。
入力した数式により、D2セルに「東京都渋谷区1234-567」と表示されました。
LEFT関数、FIND関数を組み合わせることで、入力されているデータから特定の文字以前を抽出することができました。
関数を組み合わせて抽出する数式について
上記「関数を組み合わせて抽出する方法」セクションで使用した「=LEFT(B2,FIND("7",B2))」という数式についてご説明します。
まず、LEFT関数の書式は「=LEFT(文字列,[文字数])」です。
「文字列」には、抽出元のデータが入力されているセル(B2)を入力します。
そして「文字数」に、FIND関数を用いて「左側から何文字抽出するか」を指定します。
FIND関数の書式は「=FIND(検索文字列,対象,[開始位置])」です。
「検索文字列」にて、「〇以前」という条件になる文字列("7")を指定することで、該当の文字が左から何文字目かを求めます。
そして「対象」には、抽出元のデータが入力されているセル(B2)を入力します。
FIND関数の詳細については以下の記事をご覧ください。
ExcelのFIND関数の使い方|文字列が最初に現れる位置を検索
今回の「FIND("7",B2)」では、「B2セルに入力されているデータの左側(文頭)を基準に『7』までの文字数(14)」がLEFT関数の「文字数」に入力されることになります。
そのため「=LEFT(B2,FIND("7",B2))」は、B2セルに入力されているデータの左側から14文字分が抽出されます。
TEXTBEFORE関数で抽出する方法
Microsoft 365以降のバージョンでのみ「TEXTBEFORE関数」という関数を利用することができます。
TEXTBEFORE関数を活用することで、非常にシンプルな数式で簡単に特定の文字より前のデータを抽出することができます。
詳しい方法は以下の通りです。
今回はTEXTBEFORE関数を使って、上記画像B2セルに入力されている「東京都渋谷区1234-567シルバーリーフハイツ505号室」から、「シルバー」より前の「東京都渋谷区1234-567」を抽出します。
任意のセル(例:D2セル)に「=TEXTBEFORE(B2,"シルバー")」を入力し、Enterを押します。
TEXTBEFORE関数は、参照したデータのうち、指定した文字より前に入力されているデータを抽出する関数です。
TEXTBEFORE関数の書式は「=TEXTBEFORE(text,delimiter,[instance_num], [match_mode], [match_end], [if_not_found])」です。
今回は「text」「delimiter」のみ指定します。
まず「text」には、抽出元のデータが入力されているセル(B2)を入力します。
そして「delimiter」には、「〇より前」という条件になる文字列("シルバー")を指定します。
今回の「=TEXTBEFORE(B2,"シルバー")」は、B2セルのデータから「シルバー」より前に入力されているデータを抽出するという意味になります。
入力した数式により、D2セルに「東京都渋谷区1234-567」と表示されました。
TEXTBEFORE関数を使って、入力されているデータから特定の文字より前を抽出することができました。