TEXTAFTER関数(テキストの指定文字列より後ろの部分を返す)
TEXTAFTER関数はOffice365のExcelに2022年になってから追加された新しい関数です。
区切り文字列の後ろではなく前を取得する場合はTEXTBEFORE関数を使用します。
TEXTAFTER関数の構文
| text テキスト |
対象のテキスト文字列。 必ず指定します。 |
| delimiter 区切り文字列 |
区切りに使用する文字。 textをdelimiterに指定された文字で区切って後ろの部分を返します。 必ず指定します。 |
| instance_num 区切り位置 |
行の区切りに使用する文字。 区切り文字列が複数存在している場合の何番目を対象とするかの数値を指定します。 正の数を指定するとテキストの先頭から検索を開始し、負の数を指定するとテキストの末尾から検索を開始します。 省略可能です。 既定値は 1 です。(先頭から検索し最初に出現した区切り文字位置) |
| match_mode 検索方法 |
区切り文字の検索時に、英文字の大文字小文字を区別するかどうかを指定します。 0:大文字と文字を区別する 1:大文字と小文字を区別しない 既定値は 0:(大文字と文字を区別する) |
| match_end 終端と一致 |
テキストの末尾を区切り記号として扱うかどうか。 0:一致して終了しない 1:一致して終了 省略可能です。 既定値は 0:(0:一致して終了しない) これは非情に分かりづらいので、この下で詳しく解説します。 |
| if_not_found 見つからない時 |
一致するものが見つからない場合に返される値。 省略可能です。 既定値は #N/A です。 |
テキスト(text)
前から検索 (instance_num が正) にはテキスト全体が返され、末尾から検索するとき (instance_num が負の場合) には空のテキストが返されます。
区切り文字列として","を指定した場合

正の数値を指定した場合は、先頭から1,2,...となります。
負の数値を指定した場合は、末尾から-1,-2,...となります。
TEXTAFTER関数は、この区切り文字の位置より後ろの部分の文字列を返します。
instance_numの絶対値が、存在する区切り文字列の数の絶対値より大きい場合は #N/A! エラーになります。
(区切り文字列が2つ存在する場合なら、3以上または-3以下の指定は #N/A)
instance_numに0を指定すると #VALUE! エラーになります。
省略時の既定値は 1 です。
区切り文字は記号を指定することが多いので、区切り文字として英文字を使う機会は多くないと思います。

(区切り位置が正数ならテキストの最後、区切り位置が負数ならテキストの最初)


match_endに1を指定した場合は検索において終端も一致していると判定します。
正の数値を指定した場合は、先頭から検索していきテキストの末尾も一致として扱います。
負の数値を指定した場合は、末尾から検索していきテキストの先頭も一致として扱います。
上記の場合なら、区切り位置(instance_num)に3または-3を指定した場合は空文字""が返されます。

テキストの末尾が1、テキストの先頭が-1になります。
区切り位置を省略した場合は1指定になるので、空文字""が返されることになります。
省略時の既定値は #N/A です。
テキストがエラー値の場合はこの指定は有効とは成らず、TEXTAFTER関数は同じエラーを返します。
TEXTAFTER関数の使用例と解説
区切り文字列(delimiter)だけを指定
=TEXTAFTER(A1,",")

省略された引数は以下の既定値になります。
検索方法(match_mode) = 0:大文字と文字を区別する
終端と一致(match_end) = 0:一致して終了しない
見つからない時(if_not_found) = #N/A
=TEXTAFTER(A1,";")

テキスト(text)にセル範囲(複数セル)を指定
=TEXTAFTER(A1:A2,",")

テキストが横範囲なら横に、縦範囲なら縦にスピルします。
区切り位置(instance_num)に正の値を指定
=TEXTAFTER(A1,",",2)

=TEXTAFTER(A1,",",1) → 「Word,Access」
=TEXTAFTER(A1,",",2) → 「Access」
instance_numに3以上を指定した場合は #N/A エラーとなります。

区切り位置(instance_num)に負の値を指定
=TEXTAFTER(A1,",",-1)

=TEXTAFTER(A1,",",-1) → 「Access」
=TEXTAFTER(A1,",",-2) → 「Word,Access」
instance_numに-3以下を指定した場合は #N/A エラーとなります。

検索方法(match_mode)に「1:大文字と小文字を区別しない」を指定
=TEXTAFTER(A1,"A",,1)

したがって、先に一致した"a"より後ろの文字列が返されています。
=TEXTAFTER(A1,"A",,0) → 「678a90」
=TEXTAFTER(A1,"A",,1) → 「45A678a90」
終端と一致(match_end)に「1:一致して終了」を指定
=TEXTAFTER(A1,",",3,,1)

つまりテキストが、「Excel,Word,Access,」である場合と同様の結果になります。
省略または「0:一致して終了しない」の指定の場合は、検索文字列は2つしかないので3の指定では #N\A になります。

=TEXTAFTER(A1,",",-3,,1)

終端と一致(match_end)に「1:一致して終了」を指定しているので、文字列の先頭に区切り文字列があるものとして動作します。
つまりテキストが、「,Excel,Word,Access」である場合と同様の結果になります。
省略または「0:一致して終了しない」の指定の場合は、検索文字列は2つしかないので-3の指定では #N\A になります。

実際に存在する区切り文字列の数より多い数を指定している可能性がある場合に、
テキストをそのまま返したければ、
=TEXTAFTER(A1,",",3,,0,A1)
空文字列を返したければ、
=TEXTAFTER(A1,",",3,,0,"")
このように指定したほうが数式が分かり易いと思います。
区切り文字列(delimiter)に配列を指定
=TEXTAFTER(A1,{",",";"})
配列の先頭文字列だけが有効になるようです。
これは少し不満のある仕様ですが、仕方ありません。
区切り文字列(instance_num)に配列を指定
=TEXTAFTER(A1,",",{1,2})
縦配列の {1;2} と指定すれば縦にスピルします。

TEXTAFTERの応用例:TEXTBEFOREまたはTEXTAFTERとの組み合わせ
LAMBDA以降の新関数の問題集 ・・・ 解答は別ページになっています。
同じテーマ「エクセル入門」の記事
WRAPCOLS関数(1次元配列を指定数の列で折り返す)
TEXTSPLIT関数(列と行の区切り記号で文字列を分割)
TEXTBEFORE関数(テキストの指定文字列より前の部分を返す)
TEXTAFTER関数(テキストの指定文字列より後ろの部分を返す)
LAMBDA以降の新関数の使用例
縦横スピルしないXLOOKUP代替(MATCH+INDEX,FILTER,CHOOSEROWS)
直積(クロス結合、交差結合)とピボット解除
複数の文字列を検索して置換するSUBSTITUTE
LAMBDA以降の新関数の問題集
LAMBDA以降の新関数の問題と解説(ヘルパー関数編)
LAMBDA以降の新関数の問題と解説(配列操作関数編)
新着記事NEW ・・・新着記事一覧を見る
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)
IFS関数をVBAで入力するとスピルに関係なく「@」が付く現象について|VBA技術解説(2025-12-23)
数値を記号の積み上げでグラフ化する(■は10、□は1)|エクセル練習問題(2025-12-09)
AI時代におけるVBAシステム開発に関する提言|生成AI活用研究(2025-12-08)
GrokでVBAを作成:条件付書式を退避回復するVBA|エクセル雑感(2025-12-06)
顧客ごとの時系列データから直前の履歴を取得する|エクセル雑感(2025-11-28)
ちょっと悩むVBA厳選問題|エクセル雑感(2025-11-28)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.条件分岐(Select Case)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.
