【Excel】エクセルで特定の文字以降を抽出・削除する方法
Excelで住所、商品コード、メールアドレス、管理番号などを扱っていると、特定の文字より後ろだけを取り出したい場面や、反対に後ろの文字列を消したい場面があります。
たとえば「東京支店_営業部」から「営業部」を抽出したい、「A-001-赤」から最後のハイフン以降を削除したい、といった処理です。
こうした文字列操作は、関数の役割と検索位置の考え方を押さえると、複雑に見えるデータでも整理しやすくなります。
特定の文字以降を抽出するときは、区切り文字の位置を求めてから文字数を指定する流れが基本です。
削除するときは、左側を残すのか、右側を残すのかを先に決めると数式を選びやすくなります。
この記事では、FIND関数、SEARCH関数、LEFT関数、RIGHT関数、MID関数、TEXTBEFORE関数、TEXTAFTER関数を使い、特定の文字以降を抽出・削除する方法を解説します。
特定の文字以降を取り出す基本操作
| A列 元データ | B列 抽出結果 |
|---|---|
| 東京支店_営業部 | 営業部 |
| 大阪支店_経理部 | 経理部 |
それではまず、特定の文字以降を別セルへ抽出する基本操作について解説していきます。
区切り文字の位置を調べるFIND関数
特定の文字以降を取り出す前に、対象となる区切り文字が何文字目にあるかを調べます。
FIND関数は、文字列の中から指定した文字を検索し、その開始位置を数値で返す関数です。
FIND関数の考え方は、FIND(検索したい文字, 検索するセル)です。
A2セルが「東京支店_営業部」の場合、=FIND(“_”,A2)の結果は5となります。
「東京支店」は4文字で、その次にあるアンダースコアが5文字目に存在するためです。
FIND関数で取得した数値は、RIGHT関数やMID関数で抽出範囲を決める基準になります。

半角と全角、記号の種類は正確に指定しましょう。
見た目が似ていても、半角のハイフンと全角の長音記号、半角スペースと全角スペースは別の文字として扱われます。
RIGHT関数で区切り文字より右側を抽出する方法
区切り文字より後ろが常に欲しい場合は、RIGHT関数とFIND関数を組み合わせる方法が便利です。
B2セルへ次の数式を入力します。
=RIGHT(A2,LEN(A2)-FIND(“_”,A2))
LEN(A2)はA2セル全体の文字数を返し、FIND(“_”,A2)はアンダースコアの位置を返します。
全体の文字数から区切り文字の位置を引くことで、アンダースコアの右側にある文字数だけを求めています。
「東京支店_営業部」なら文字数は8文字であり、区切り文字は5文字目です。
そのため8から5を引いた3文字が指定され、RIGHT関数は右端から3文字の「営業部」を返します。

RIGHT関数は文字列の右端から数えるため、抽出対象が必ず末尾側にあるデータで特に使いやすい関数です。
数式を入力した後は、B2セル右下のフィルハンドルを下方向へドラッグすると、3行目以降にも同じルールを適用できます。
MID関数で途中から任意の文字数を取り出す方法
抽出したい文字列が右端まで続くとは限らず、さらに別の区切り文字がある場合もあります。
このようなときは、開始位置と抽出文字数を指定できるMID関数が役立ちます。
たとえばA2セルに「商品_青_色」のようなデータがあり、最初のアンダースコア以降を取り出す場合は次の式を使えます。
=MID(A2,FIND(“_”,A2)+1,LEN(A2))
FIND関数の結果に1を加えることで、区切り文字そのものを飛ばした次の文字から抽出を開始します。
第3引数には十分に大きい文字数としてLEN(A2)を指定しているため、開始位置から末尾までを実質的に取得できます。
MID関数は開始位置を自由に指定できるため、文字列の中央にある情報を切り出す処理にも対応できます。
【操作のポイント】抽出する文字列の開始位置は、区切り文字の位置に1を足して指定します。
特定の文字以降を削除するLEFT関数
| A列 元データ | B列 削除後 |
|---|---|
| A-001-赤 | A |
| B-002-青 | B |
続いては、特定の文字以降を削除し、左側だけを残す方法を確認していきます。
最初の区切り文字より左を残す数式
「A-001-赤」から最初のハイフン以降を消して「A」だけを残したい場合は、LEFT関数とFIND関数を組み合わせます。
=LEFT(A2,FIND(“-“,A2)-1)
FIND(“-“,A2)は最初のハイフンの位置を返します。
そこから1を引くことで、ハイフンを含めずに左側の文字数を指定できます。
この例ではハイフンが2文字目にあるため、LEFT関数は左から1文字だけを返します。
削除の数式では、区切り文字まで残すのか、区切り文字の直前まで残すのかを意識することが重要です。

区切り文字も結果に含めたい場合は、最後の「-1」を外して=LEFT(A2,FIND(“-“,A2))とします。
指定文字列より前を残す住所データの整理
住所や部署名では、「東京都新宿区 西新宿」のようにスペースより後ろを削除したいことがあります。
半角スペースを基準にするなら、数式は=LEFT(A2,FIND(” “,A2)-1)です。
全角スペースが使われているデータでは、数式内の検索文字も全角スペースに変える必要があります。
Excelでは入力されている文字を見分けにくいため、数式バーを確認し、元データをコピーして検索文字として貼り付ける方法も有効です。
文字列の一部を削除できないときは、全角半角の違いと余分なスペースを最初に疑いましょう。

先頭や末尾に余分な空白が混じる可能性がある場合は、TRIM関数で整形してから検索すると結果が安定します。
=LEFT(TRIM(A2),FIND(” “,TRIM(A2))-1)
エラー表示を防ぐIFERROR関数の組み合わせ
すべてのセルに区切り文字があるとは限りません。
たとえば「A-001-赤」と「未分類」が同じ列に並ぶと、FIND関数は「未分類」で検索対象を見つけられず、エラーを返します。
この場合はIFERROR関数で数式を包むと、エラーではなく元の文字列を表示できます。
=IFERROR(LEFT(A2,FIND(“-“,A2)-1),A2)
この式はハイフンがあればその前を返し、ハイフンがなければA2セルの内容をそのまま返します。
データ件数が多い表では、例外データを想定したIFERROR関数の追加が実務的です。
【操作のポイント】区切り文字が存在しないデータにも対応するなら、IFERROR関数で元の値を残す設定にします。
TEXTBEFORE関数とTEXTAFTER関数の活用
| A列 元データ | B列 区切り後 |
|---|---|
| 東京支店_営業部 | 営業部 |
| 名古屋支店_総務部 | 総務部 |
続いては、新しいExcelで使えるTEXTBEFORE関数とTEXTAFTER関数を確認していきます。
TEXTAFTER関数で区切り文字より後ろを抽出する方法
Microsoft 365や新しいバージョンのExcelでは、TEXTAFTER関数を使うと数式を短く書けます。
A2セルのアンダースコア以降を抽出する数式は次のとおりです。
=TEXTAFTER(A2,”_”)
TEXTAFTER関数は、指定した区切り文字を見つけ、その直後から末尾までの文字列を返します。
RIGHT関数とLEN関数を組み合わせた方法よりも、数式の意図を読み取りやすい点がメリットです。
TEXTAFTER関数は、区切り文字の後ろを取り出す目的が式の名前からも分かりやすい関数です。
I
罫線
中央揃え
Σ 自動集計
| A | B | C | |
|---|---|---|---|
| 1 | 元データ | 抽出結果 | |
| 2 | 東京支店_営業部 | 営業部 | |
| 3 | 大阪支店_経理部 |
数式を入力したB2セルを選択し、右下のフィルハンドルを下へドラッグすると、各行の区切り文字以降を一括抽出できます。
TEXTBEFORE関数で区切り文字より前を残す方法
区切り文字より前だけを残したい場合は、TEXTBEFORE関数を使用します。
=TEXTBEFORE(A2,”_”)
この数式は「東京支店_営業部」から「東京支店」を返します。
LEFT関数とFIND関数を組み合わせた式と同じ結果ですが、文字数を自分で計算する必要がありません。
TEXTBEFORE関数は、特定文字以降を削除する処理を簡潔に書きたいときに向いています。
ただし、古いExcelではTEXTBEFORE関数が利用できないことがあります。
ファイルを共有する相手のExcel環境が不明な場合は、LEFT関数とFIND関数の組み合わせを選ぶと互換性を確保しやすくなります。
複数回出現する区切り文字の指定
「東京_営業_第一課」のように同じ記号が複数ある場合は、何番目の区切り文字を基準にするかを指定できます。
TEXTAFTER関数の第3引数には、区切り文字の出現回数を指定できます。
=TEXTAFTER(A2,”_”,2)
この式では2番目のアンダースコアより後ろの「第一課」を返します。
反対に、2番目のアンダースコアより前までを取得する場合は、=TEXTBEFORE(A2,”_”,2)と入力します。
複数の区切り文字があるデータでは、最初から何番目を基準にするのかを決めることが欠かせません。
【操作のポイント】新しいExcelではTEXTBEFORE関数とTEXTAFTER関数を使うと、抽出と削除の式を読みやすくできます。
最後の文字以降を抽出・削除する数式
| A列 元データ | B列 最後の記号後 |
|---|---|
| A-001-赤 | 赤 |
| B-002-青 | 青 |
続いては、最後に出現する文字以降を対象にする数式を確認していきます。
TEXTAFTER関数で最後の区切り文字より後ろを抽出する方法
TEXTAFTER関数では、出現回数にマイナス1を指定すると、最後の区切り文字を基準にできます。
=TEXTAFTER(A2,”-“,-1)
「A-001-赤」では最後のハイフンより後ろにある「赤」が抽出されます。
商品コードの色、拡張子、階層化された分類名など、最後の要素だけを取り出す処理で便利です。
末尾の情報だけを取り出す場合は、最後の区切り文字を基準にする式がデータ構造に合います。
TEXTBEFORE関数で最後の区切り文字以降を削除する方法
最後のハイフン以降を削除して「A-001」を残す場合は、TEXTBEFORE関数を使います。
=TEXTBEFORE(A2,”-“,-1)
第3引数のマイナス1は、後ろから数えて1番目、つまり最後のハイフンを意味します。
ファイル名から拡張子を除く場合にも応用できます。
たとえば「報告書.xlsx」から「報告書」を残すなら、=TEXTBEFORE(A2,”.”,-1)です。
ただしファイル名にピリオドがないデータも混在する場合は、IFERROR関数を加えておくと安心です。
古いExcelで最後の区切り位置を求める方法
TEXTBEFORE関数が使えない環境では、SUBSTITUTE関数とFIND関数を組み合わせて最後の区切り文字を特定できます。
数式はやや長くなりますが、旧バージョンでも対応可能です。
=LEFT(A2,FIND(“@”,SUBSTITUTE(A2,”-“,”@”,LEN(A2)-LEN(SUBSTITUTE(A2,”-“,””))))-1)
この式では、まずハイフンの総数を数え、最後のハイフンだけを一時的に@へ置き換えます。
その@の位置をFIND関数で求め、LEFT関数で直前までを取り出す仕組みです。
複雑な式になるため、Microsoft 365を利用できるならTEXTBEFORE関数を優先すると管理しやすいでしょう。
【操作のポイント】最後の文字を基準にする処理では、TEXTBEFORE関数またはTEXTAFTER関数の出現回数にマイナス1を指定します。
検索文字がない場合と空白を含むデータの対処
| A列 元データ | 想定する処理 |
|---|---|
| 東京支店_営業部 | 営業部を抽出 |
| 未分類 | 元の文字列を表示 |
続いては、区切り文字がないセルや空白が混在するデータの対処を確認していきます。
IFERROR関数でエラーを空欄または元データに置き換える方法
TEXTAFTER関数で区切り文字が見つからないと、通常はエラーが表示されます。
抽出できないセルを空欄にするなら、次の数式が使えます。
=IFERROR(TEXTAFTER(A2,”_”),””)
抽出できない場合に元データを表示したいなら、最後の空欄部分をA2へ変更します。
=IFERROR(TEXTAFTER(A2,”_”),A2)とすることで、区切り文字がある行だけ抽出し、それ以外はそのまま残せます。
エラーを隠すだけでなく、抽出できないデータをどう扱うかを業務ルールに合わせて決めることが大切です。
TRIM関数とCLEAN関数による不要な文字の整理
貼り付けたデータには、余計な空白や改行コードなど、画面上で確認しにくい文字が含まれることがあります。
TRIM関数は連続した半角スペースを1つにまとめ、先頭と末尾の半角スペースを削除します。
CLEAN関数は印刷できない制御文字を取り除くため、外部システムから取り込んだデータの整形に役立ちます。
=TEXTAFTER(TRIM(CLEAN(A2)),”_”)
このように元データを整形してから抽出すると、想定外の空白により数式が失敗するケースを減らせます。
全角半角とワイルドカードの注意点
FIND関数は大文字と小文字を区別しますが、SEARCH関数は区別しません。
英字を含むデータで大文字小文字を同じものとして検索したい場合は、SEARCH関数を使う選択肢があります。
また、SEARCH関数ではアスタリスクや疑問符がワイルドカードとして働くため、その記号自体を検索したいときには注意が必要です。
区切り文字が半角か全角か、複数あるか、毎行必ず存在するかを確認してから数式を決めましょう。
【操作のポイント】数式が想定どおりに動かないときは、エラー処理、余分な空白、全角半角の違いを順番に確認します。
まとめ エクセルで特定の文字以降を削除・抽出する方法
Excelで特定の文字以降を抽出・削除する方法は、データの構造とExcelのバージョンによって使い分けると効率的です。
区切り文字より後ろを抽出する基本式は、=RIGHT(A2,LEN(A2)-FIND(“_”,A2))です。
区切り文字以降を削除して左側を残す基本式は、=LEFT(A2,FIND(“_”,A2)-1)となります。
Microsoft 365などの新しいExcelでは、=TEXTAFTER(A2,”_”)と=TEXTBEFORE(A2,”_”)を使うことで、より短く分かりやすい数式にできます。
最後の区切り文字を基準にする場合は、TEXTAFTER関数やTEXTBEFORE関数の出現回数へマイナス1を指定しましょう。
区切り文字がない行が混在する場合は、IFERROR関数を組み合わせると、エラー表示を防ぎながら表を整えられます。
まずは対象データの区切り文字と、残したい文字列の位置を確認することが、正しい数式を選ぶ近道です。