TEXTAFTER関数の使い方|特定の文字より後ろの文字列を抽出する方法

スポンサーリンク

「メールアドレスから@より後ろのドメインだけ取り出したい」「ファイルパスからファイル名だけ抽出したい」――こんな文字列操作を一行の数式で解決してくれるのが TEXTAFTER関数 です。

RIGHT関数やFIND関数を組み合わせた複雑な数式が不要になり、シンプルに書けます。TEXTBEFORE関数と対になる関数で、Excel 2021・Microsoft 365から使えます。

この記事では基本的な使い方から、インスタンス指定・エラー対処、TEXTBEFORE・TEXTSPLITとの使い分けまで解説します。


TEXTAFTER関数とは?

読み方と語源

「テキスト アフター」と読みます。TEXT(テキスト)+ AFTER(〜より後)が語源で、「指定した文字よりも後ろの部分を抽出する」関数です。

できること

指定した 区切り文字(デリミタ)より後ろ の文字列を返します。

  • メールアドレスの「@」より後ろのドメインを取り出す
  • ファイルパスの最後の「」より後ろのファイル名を取り出す
  • 「苗字 名前」の名前だけを抽出する
  • 複数出現する区切り文字の「N番目」より後ろを指定できる

対応バージョン:Excel 2021・Microsoft 365(Excel 2019以前では使用不可)


TEXTAFTER関数の書き方

基本構文

=TEXTAFTER( 文字列, 区切り記号, [インスタンス], [一致モード], [検索方法], [見つからない場合] )

引数の説明

引数必須/任意説明
文字列必須抽出対象の文字列またはセル参照を指定します
区切り記号必須この文字より「後ろ」を抽出する目印となる文字を指定します
インスタンス任意区切り記号が複数ある場合に何番目を基準にするか指定します(省略時は1番目)
一致モード任意大文字・小文字を区別するか指定します(0=区別する/1=区別しない)
検索方法任意区切り記号が見つからない場合に文字列全体を返すか指定します(0=全体を返す/1=エラーを返す)
見つからない場合任意区切り記号が見つからない場合に表示する値を指定します(省略時は #N/A

基本的な使い方

例1:メールアドレスからドメインを抽出する

A1セルに user@example.com が入っている場合:

=TEXTAFTER(A1, "@")

結果:example.com

「@」より後ろの文字列だけが取り出せます。

例2:フルネームから名前を抽出する

A1セルに 田中 太郎 が入っている場合(スペース区切り):

=TEXTAFTER(A1, " ")

結果:太郎

スペースより後ろの「太郎」だけが返されます。

例3:複数の区切り文字がある場合(インスタンス指定)

A1セルに 田中,太郎,male,22 が入っている場合:

=TEXTAFTER(A1, ",")      → 「太郎,male,22」(1番目のカンマより後ろ)
=TEXTAFTER(A1, ",", 2)   → 「male,22」(2番目のカンマより後ろ)
=TEXTAFTER(A1, ",", 3)   → 「22」(3番目のカンマより後ろ)

インスタンスに 負の値 を指定すると、末尾から数えた番目になります。

=TEXTAFTER(A1, ",", -1)  → 「22」(末尾から1番目のカンマより後ろ)

エラー処理と「見つからない場合」引数

区切り記号が文字列の中に存在しない場合、デフォルトでは #N/A エラーが返されます。

見つからない場合に別の値を返す

=TEXTAFTER(A1, "@", 1, 0, 0, "該当なし")

「@」が含まれないセルには「該当なし」が表示されます。データに対象外の行が混じっている場合に役立ちます。

見つからない場合に元の文字列を返す(検索方法=0)

=TEXTAFTER(A1, "@", 1, 0, 0)

第5引数(検索方法)を 0 にすると、区切り記号が見つからない場合でも元の文字列全体が返されます。


大文字・小文字を区別しない検索

=TEXTAFTER("Hello World", "hello", 1, 1)

一致モードを 1 にすると、「Hello」と「hello」を同一視します。


実務での活用例

活用例1:メールアドレスのドメインを一括取得する

顧客リストにメールアドレスが入っている場合、ドメインだけ取り出してグループ分けできます。

=TEXTAFTER(A2, "@")

これを一列に入力するだけで、全行のドメインが一括で取得できます。

活用例2:ファイルパスからファイル名を取り出す

C:UserstanakaDocumentsreport.xlsx からファイル名だけ取り出す:

=TEXTAFTER(A1, "", -1)
→ "report.xlsx"

インスタンスに -1 を指定することで、最後の より後ろが返されます。

活用例3:URLからパスを取得する

https://example.com/category/page からドメイン以降のパスを取り出す:

=TEXTAFTER(A1, "example.com")
→ "/category/page"

TEXTBEFORE・TEXTSPLITとの使い分け

関数抽出方向使いどころ
TEXTBEFORE区切り文字より前ユーザー名・名字・先頭部分を取り出したい
TEXTAFTER区切り文字より後ろドメイン・名前・末尾部分を取り出したい
TEXTSPLIT全体を複数セルに展開分割した全要素を配列として使いたい

同じ文字列に両方使う例(A1 = user@example.com):

=TEXTBEFORE(A1, "@")   → "user"(@より前)
=TEXTAFTER(A1, "@")    → "example.com"(@より後)

よくあるエラーと対処法

エラー原因対処法
#N/A区切り記号が文字列内に存在しない第6引数に代替値を指定するか、第5引数を 0 にする
#VALUE!インスタンスに0を指定しているインスタンスは1以上または負の整数のみ有効
#VALUE!文字列引数が空の配列になっているセル参照の範囲を確認する

まとめ

TEXTAFTER関数のポイントをまとめます。

  • 指定した区切り記号より「後ろ」の文字列を1つの数式で取り出せる
  • インスタンス引数で「N番目の区切り文字より後ろ」を柔軟に指定できる
  • 区切り記号が見つからない場合のエラー処理も引数で制御できる
  • TEXTBEFORE・TEXTSPLITとセットで覚えると文字列操作の幅が大きく広がる

RIGHT・FIND関数の組み合わせで書いていた数式を、TEXTAFTER一本でシンプルに書き直してみてください。


関連記事

タイトルとURLをコピーしました