Excelで特定の文字より後ろ(以降)を抽出する方法|TEXTAFTER・MID+FIND

Excelで特定の文字より後ろ(以降)を抽出する方法|TEXTAFTER・MID関数

Excelで特定の文字より後ろを抽出するなら、Microsoft 365・Excel 2024ではTEXTAFTER関数が使えます。Excel 2021・2019・2016ではMID+FIND+LENを使います。区切り文字を結果に含めるかどうかも、数式で指定できます。

この記事の基本の式
数式=TEXTAFTER(A1,":")
練習用Excelファイル(無料ダウンロード)
MIDとFIND・TEXTAFTER・文字の間の3シート入り。黄色い元データを変更してください。TEXTAFTERシートはMicrosoft 365・Excel 2024用です。ボタンをクリック/タップして保存し、Excelで開いてください。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
目次

特定の文字より後ろを取り出す基本式

A1が「商品コード:ABC123」の場合、全角コロン「:」より後ろのABC123を取り出す式です。

結果セルに入力:TEXTAFTERで特定の文字より後ろを取り出す(365・2024)
数式=TEXTAFTER(A1,":")
ひとことで「:」より後ろの文字を取り出す
A1
元の文字列です。サンプルは「商品コード:ABC123」です
":"
区切りの文字です。最初に見つかった「:」より後ろを取り出します
データの流れ
① A1の文字列から、区切り「:」を探す
A1の前半商品コード区切り:A1の後半ABC123
▼
② 区切りより後ろが返る結果
結果ABC123

TEXTAFTERが使えない場合は次の式を使います。

結果セルに入力:MID+FIND+LENで取り出す(Excel 2016以降)
数式=MID(A1,FIND(":",A1)+LEN(":"),LEN(A1))
ひとことで区切りの直後から、末尾まで取り出す
A1
元の文字列です
FIND(":",A1)+LEN(":")
開始位置です。FINDで「:」が何文字目かを調べ、LENで区切りの文字数を足して、区切りの直後にします
LEN(A1)
取り出す文字数です。末尾まで届く十分な長さにするため、文字列全体の長さを指定します
データの流れ
① 「:」の位置を調べる(FIND)
FIND6
▼
② 区切りの長さ(1)を足して、7文字目から取り出す結果
結果ABC123
ポイントFINDは区切り文字の開始位置、LEN(":")は区切りの文字数を求めます。その分だけ後ろへ進めて、MIDで末尾まで取り出します。区切りが複数文字でも対応できるよう、+1ではなく区切り文字数を足しています。
区切り文字より後ろを取り出す(MIDとFIND)式 =MID(A1,FIND(B1,A1)+LEN(B1),LEN(A1)) の解説図。C1に入力する
C1に =MID(A1,FIND(B1,A1)+LEN(B1),LEN(A1)) を入力。C は3文字目 3+1=4文字目から 最後まで → DEFG

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

区切り文字をセルで指定する

A1に元の文字列、B1に区切り文字を入力する形です。C1などの空きセルへ入力します。

C1に入力:区切りをセル(B1)で指定する
数式=MID(A1,FIND(B1,A1)+LEN(B1),LEN(A1))
ひとことで区切りをB1に入れて、書き換えるだけで取り出し方を変える
A1
元の文字列を入れるセルです
FIND(B1,A1)+LEN(B1)
B1の区切りが何文字目かを調べ、区切りの長さを足して、区切りの直後を開始位置にします
LEN(A1)
末尾まで取り出すための文字数です
データの流れ
① A1「ABCDEFG」から、B1「C」を探す
手前AB区切りC後ろDEFG
▼
② 区切りより後ろが返る結果
C1DEFG
A1:元の文字列B1:区切り結果
ABCDEFGCDEFG
12345674567
担当:田中担当:田中
注意B1は空白にせず、元の文字列に含まれる区切りを指定してください。半角「:」と全角「:」、半角スペースと全角スペースは別の文字です。

「特定の文字以降」に、その文字も含める場合

「ABCDEFG」のCを含めてCDEFGを返したいなら、開始位置をFINDの結果そのままにします。

C7に入力:区切りも含めて取り出す
数式=MID(A1,FIND(B1,A1),LEN(A1))
ひとことで開始位置を、区切りの位置そのままにする
A1
元の文字列です
FIND(B1,A1)
区切りが何文字目かを返します。LENを足さないので、区切りの文字から取り出します
LEN(A1)
末尾まで取り出すための文字数です
データの流れ
① 区切り「C」の位置から取り出す
区切りC後ろDEFG
▼
② 区切りを含めて返る結果
C7CDEFG
ポイント「より後ろ」は区切りを除外、「その文字から」は区切りを含める、と決めてから式を選ぶと取り違えを防げます。
練習用Excelファイル(無料ダウンロード)
MIDとFIND・TEXTAFTER・文字の間の3シートが入っています元の文字列と区切り文字を書き換えて、取り出される文字が変わるのを確認できます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

最後の区切り文字より後ろを取り出す

A1が「東京-営業-田中」の場合、最後のハイフンより後ろの田中を返します。TEXTAFTERの第3引数に -1 を指定します。

結果セルに入力:最後の区切りより後ろを取り出す
数式=TEXTAFTER(A1,"-",-1)
ひとことで後ろから数えて1つ目の「-」より後ろを返す
A1
元の文字列です。サンプルは「東京-営業-田中」です
"-"
区切りの文字です
-1
第3引数の何番目か。マイナスにすると、後ろから数えます。-1 は「最後の区切り」です
データの流れ
① 後ろから1つ目の「-」を探す
A6東京1つ目–A6営業最後–後ろ田中
▼
② 最後の区切りより後ろが返る結果
C6田中
ポイント最初の区切りからなら第3引数は省略、2つ目の区切りからなら2です。存在しない回数を指定すると#N/Aになります。

区切り文字がないときは空白にする

TEXTAFTERでは第6引数に見つからない場合の値を指定できます。

結果セルに入力:区切りが無いときは空白にする(TEXTAFTER)
数式=TEXTAFTER(A1,":",1,0,0,"")
ひとことで区切りが見つからないとき、エラーの代わりに空白を返す
A1
元の文字列です
":"
区切りの文字です
""
第6引数の見つからない場合の値です。省略すると #N/A になります。間の 1,0,0 は、何番目か・大文字小文字・文字列の末尾の扱いで、ここでは標準のままです
補足区切りの無い行は、空白になります。
注意MID+FINDの場合は、区切りがなければFINDが#VALUE!になります。次の式ではエラー時に空白を返しますが、元セルの別のエラーも隠れるため、式が正しく動くことを確認してから使います。
結果セルに入力:区切りが無いときは空白にする(MID+FIND)
数式=IFERROR(MID(A1,FIND(B1,A1)+LEN(B1),LEN(A1)),"")
ひとことでMID+FINDの式がエラーのときだけ、空白にする
MID(A1,FIND(B1,A1)+LEN(B1),LEN(A1))
先ほどの、区切りより後ろを取り出す式です
""
エラーのときに返す値です。空の文字を指定すると、空白になります
補足元のセルにある別のエラーも隠れてしまうので、式が正しく動くことを確認してから使います。

2つの文字の間だけを取り出す

A1を元の文字列、B1を開始の区切り、C1を終了の区切りとします。開始位置をD1、終了位置をE1で確認し、F1で間の文字を取り出します。

D1・E1・F1に入力:2つの文字の間だけを取り出す
数式D1: =FIND(B1,A1)+LEN(B1)
E1: =FIND(C1,A1,D1)
F1: =MID(A1,D1,E1-D1)
ひとことで開始位置と終了位置を別のセルで求めて、その間を取り出す
D1
開始位置です。開始の区切り(B1)の位置に、区切りの長さを足します
E1
終了位置です。終了の区切り(C1)を、開始位置(D1)より後ろから探します(第3引数が探し始める位置です)
F1
開始位置から、終了位置の手前まで(E1-D1 文字)を取り出します
データの流れ
① A1「ABCDEFGHIJ」で、開始「C」・終了「F」の位置を調べる
D14E16
▼
② CとFの間の文字が返る結果
F1DE
ポイント例としてA1=ABCDEFGHIJ、B1=C、C1=Fなら、D1は4、E1は6、結果は「DE」です。CもFも含みません。終了位置を開始位置より後ろから探すので、前方に同じ終了文字があっても取り違えにくくなります。

RIGHT関数を使う別の書き方

結果セルに入力:RIGHT関数で取り出す
数式=RIGHT(A1,LEN(A1)-FIND(B1,A1)-LEN(B1)+1)
ひとことで全体の長さから、区切りまでの長さを引いて、右から取り出す
A1
元の文字列です
LEN(A1)-FIND(B1,A1)-LEN(B1)+1
右から取り出す文字数です。全体の長さから、区切りの末尾までの長さを引きます
データの流れ
① A1「ABCDEFG」の長さ7から、区切り「C」の末尾(3)を引く
LEN7区切りの末尾3文字数4
▼
② 右から4文字が返る結果
結果DEFG
ポイント文字列全体の長さから「区切りの末尾までの長さ」を引いて、右から取り出します。MIDでもRIGHTでも結果は同じなので、読みやすい方を選べます。
練習用Excelファイル(無料ダウンロード)
区切りを、元の文字列に無い文字に変えて、エラーと空白の出方も試せます。TEXTAFTERのシートは、Microsoft 365・Excel 2024で開いてください。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

【実機で検証】取り出した数字が計算できない・見つからない原因

取り出したあとに起きやすい問題を、Excel の実機で試しました。

エクセルのTEXTAFTERで取り出した数字のSUMが0になり全角と半角の違いで#N/Aになる画面
エクセルのTEXTAFTERで取り出した数字のSUMが0になり全角と半角の違いで#N/Aになる画面
場面結果対処
取り出した数字を SUM する0(エラーは出ない)SUM(–B2:B3) で 30。取り出す式に — を付けてもよい
取り出した 10 を B2>50 で比べるTRUE— を付けて数値にしてから比べる
全角の「-」を半角の「-」で探す#N/A{“-“,”-”} と両方を指定する
大文字の X を小文字の x で探す#N/ATEXTAFTER の第4引数に 1
区切りのない文字に第5引数の 1空白(元の文字は返らない)元の文字を返すなら IFERROR(式,元のセル)

TEXTAFTER の結果は、数字に見えても文字です。B2+B3 の足し算は計算されましたが、SUM(B2:B3) は 0 でした。合計が合わないときは、取り出した列が文字になっていないかを確かめます。

特定の文字より後ろを抽出できない・エラーになるときの確認表

症状主な原因確認と対処
#VALUE!区切りが元の文字列に無い/半角「:」と全角「:」、半角と全角のスペースなどが違う区切りを、元の文字列からコピーして貼り付ける。空白にしたいときは IFERROR(TEXTAFTERは第6引数)
区切りの文字まで出てしまう開始位置を FIND の結果そのままにしている+LEN(B1) を足して、区切りの直後から取り出す
#NAME?TEXTAFTERが使えないExcel(2021・2019・2016)で開いているMID+FIND+LEN の式を使う
大文字・小文字が違って見つからないFINDは大文字と小文字を区別する区切りの表記をそろえる。TEXTAFTERなら第4引数を 1 にすると区別しない

1つのセルを分割したい・行ごと抜き出したい場合

ポイントカンマなどで複数の項目へ分ける場合はTEXTSPLITでカンマ区切りを縦に分割する方法へ。条件の文字を含む行全体が必要なら特定の文字を含む行の抽出へ進んでください。今回の式はセル内の文字を切り出す方法です。
練習用Excelファイル(無料ダウンロード)
MIDとFIND・TEXTAFTER・文字の間の3シート入り。黄色い元データを変更してください。TEXTAFTERシートはMicrosoft 365・Excel 2024用です。ボタンをクリック/タップして保存し、Excelで開いてください。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

カンマなどの区切り文字で1つのセルを複数のセルに分けたい場合は、カンマ区切りの文字列をTEXTSPLITで縦・横に並べる方法で詳しく解説しています。

仕様の確認:Microsoft公式・TEXTAFTER関数

関数ごとの詳しい使い方は、MID関数・FIND関数・TEXTBEFORE・TEXTAFTER関数・LEN関数・文字列関数の練習問題で、実際の Excel の画面と練習用ファイルつきで説明しています。

特定の文字より後ろの抽出のよくある質問

エクセルで特定の文字以降を抽出する関数は?

Microsoft 365・Excel 2024ではTEXTAFTER関数です。=TEXTAFTER(A1,":") で「:」より後ろを取り出します。Excel 2021・2019・2016では =MID(A1,FIND(":",A1)+LEN(":"),LEN(A1)) を使います。

特定の文字が複数あるとき、どの文字より後ろを抽出するか指定できますか?

TEXTAFTERの第3引数で指定できます。最初の区切りからなら省略、2つ目の区切りからなら 2 です。最後の区切りより後ろは =TEXTAFTER(A1,"-",-1) で、「東京-営業-田中」から「田中」を返します。

特定の文字から後ろを、その文字も含めて抽出するには?

開始位置をFINDの結果そのままにします。=MID(A1,FIND(B1,A1),LEN(A1)) で、A1が「ABCDEFG」、B1が「C」なら「CDEFG」を返します。区切りを除くときは +LEN(B1) を足します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次