Excel TEXTAFTER function: extract text after specific character or word

When working with complex datasets in Excel, you may often find yourself in a situation when you need to extract data to the right of a certain character or word. This tutorial will show you the fastest way by using the span-new TEXTAFTER function.

TEXTAFTER function in Excel

The Excel TEXTAFTER function returns text that appears after a given character or substring, which is called the delimiter. In case there are multiple occurrences of the delimiter, you can choose the target occurrence. If the delimiter is not found, the function can return the #N/A error, your own text, or the original string.

The syntax of TEXTAFTER is as follows:

TEXTAFTER(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found])

The function has 6 arguments, of which only the first two are required.

text (required) - the text to extract from. Can be supplied in the form of a string or cell reference.

delimiter (required) - a character or substring after which to do the extraction.

instance_num (optional) - the instance of the delimiter after which to extract text. The default value is 1. A negative number starts searching from the end of the original text.

match_mode (optional) - defines the delimiter's case-sensitivity. Enabled by default.

  • 0 (default) - case-sensitive
  • 1 - case-insensitive

match_end (optional) - treats the end of text as delimiter. Disabled by default.

  • 0 (default) - match the delimiter exactly as specified in the formula.
  • 1 - consider the end of text as delimiter. Here's how it practically works: if both match_end and instance_num are 1, Excel returns an empty string if delimiter is not found. If match_end is 1 and instance_num is -1, the entire string is returned if delimiter is not found.

if_not_found (optional) - the value to return if the delimiter is not present in the source text. If not set, a #N/A error is returned.

TEXTAFTER availability

The TEXTAFTER function is only available in Excel for Microsoft 365 (Windows and Mac) and Excel for the web.

Tips:

Basic Excel text after formula

First things first, let's get to know how to build an Excel TEXTAFTER formula in its simplest form using only the required arguments (the first two).

Excel formula: extract text after character

To extract the text that appears after a specific character, you supply the reference to the cell containing the source text for the first (text) argument and the character in double quotes for the second (delimiter) argument.

For example, to extract text after space the formula is:

=TEXTAFTER(A2, " ") Excel formula to extract text after space

Excel formula: get text after string

To return the text that occurs after a certain substring, use that substring for the delimiter.

For example, if the last and first names are separated by a comma and a space, use the string ", " for delimiter:

=TEXTAFTER(A2, ", ") Excel formula to extract text after a substring

Excel formula: extract text after word

In Excel terms, a "word" is nothing else but a "substring". So, to copy text after a specific word into another cell, specify the word as the delimiter.

For instance, to get the text after the word "color", use this formula:

=TEXTAFTER(A2, "color ")

Please note that the delimiter includes a space after the word "color " to avoid leading spaces in the results. Excel formula to get text after a specific word

Now that you've got a grasp of the basics, let's investigate a few more complex scenarios.

Return text after Nth occurrence of delimiter

To get text that appears after the nth instance of the delimiter, make use of the instance_num parameter.

For example, to extract the text after the second comma, you use the string ", " for delimiter and the number 2 for instance_num:

=TEXTAFTER(A2, ", ", 2)

Again, the delimiter includes a space because, in the original text, the values are separated by a comma and a space. Return text after the nth instance of the delimiter.

Get text after last occurrence of delimiter

To extract the text after the last occurrence of the delimiter, use a negative value for the instance_num argument.

For example, to return the text after the last comma in A2, set instance_num to -1:

=TEXTAFTER(A2, ", ", -1) Get text after the last occurrence of the delimiter.

To extract the text after the last but one comma, set instance_num to -2:

=TEXTAFTER(A2, ", ", -2) Extract text after the last but one comma.

Get text after multiple delimiters

To handle multiple delimiters at a time, you can use an array constant like {"x","y","z"} in your TEXTAFTER formula, where x, y, and z are different characters or substrings.

For instance, in the dataset below, the delimiter is either a comma or semicolon, with or without a space. To handle all four variations of the delimiter correctly, we use the array constant {",",", ",";","; "}:

=TEXTAFTER(A2, {",",", ",";","; "}) Get text after multiple delimiters

If delimiter not found, return your own text

If the TEXTAFTER function cannot match delimiter in the original text string, it returns a #N/A error by default. In many situations it makes more sense to output a custom value instead. For this, you need to define the if_not_found argument (the last one).

For example, if the word "color " does not exist in cell A2, this formula would throw a #N/A error:

=TEXTAFTER(A2, "color ") If the delimiter is not found, a #N/A error is returned.

To return a blank cell instead, we supply an empty string ("") for if_not_found:

=TEXTAFTER(A2, "color ", , , , "")

Alternatively, you can type any text or character you want, say a hyphen "-":

=TEXTAFTER(A2, "color ", , , , "-") If the delimiter is not found, return any text or character you want.

If delimiter is not found, return original text

To return the original text every time the TEXTAFTER function cannot match the delimiter, this is what you need to do:

  • Set instance_num to -1 to search the source string from right to left.
  • Set match_end to 1 to treat the end of the string as the delimiter.

When searching backwards, the beginning of the string becomes the "end", so the formula returns the entire text when the delimiter is not found.

In our case, the delimiter is a substring consisting of a colon and a space:

=TEXTAFTER(A2, ": ", -1, ,1)

If the delimiter is not present in a given cell, the entire cell contents are returned. If the delimiter is not found, TEXTAFTER returns the original text.

TEXTAFTER formula case-sensitive and case-insensitive

By default, the Excel TEXTAFTER function is case-sensitive, treating lowercase and uppercase delimiters as different ones. To make the formula case-insensitive, set the match_mode argument to 1 or TRUE.

For example, the below formula only accepts the lowercase "color " as the delimiter:

=TEXTAFTER(A2, "color ") Case-sensitive TEXTAFTER formula

To make the formula case-insensitive, so it accepts the word-delimiter regardless of the letter case, we set the match_mode argument to 1:

=TEXTAFTER(A2, "color ", ,1) Case-insensitive TEXTAFTER formula

Excel TEXTAFTER function not working

If the function does not exist in your Excel, please check out TEXTAFTER availability.

If the function results in an error, it's most likely to be one of these reasons:

A #N/A error occurs when:

  • The delimiter is not found the source string. To fix the error, configure the if_not_found argument as explained in this example.
  • The instance_num value is higher than the total number of the delimiters in text.

A #VALUE! error occurs when:

  • The instance_num argument is set to 0.
  • The instance_num value is higher than the total length of text.

That's how to use the TEXTAFTER function to extract text after a specific character or word in Excel 365. I thank you for reading and hope to see you on our blog next week!

Practice workbook for download

TEXTAFTER function – formula examples (.xlsx file)

15 comments

  1. How would you combine a search with textafter/textbefore if the cell contains certain text?

    Cell contains:

    hostname.x.y.z.a

    I need to remove everything after hostname and display hostname

    The following didnt work:

    =IF(ISNUMBER(SEARCH(a1,".x.y.z.a")),TEXTBEFORE(a1,".x.y.z.a",-2))

    it shows false and I cannot work out why!

    • Hi! If I understand your task correctly, the following formula should work for you:

      =IF(ISNUMBER(SEARCH(".x.y.z.a",A1)),TEXTBEFORE(A1,".x.y.z.a"),"")

      You can also use IFERROR function instead of IF:

      =IFERROR(TEXTBEFORE(A1,".x.y.z.a"),"")

  2. Hello, I need help extracting certain numbers from a text, the length of the text always varies, there are numbers before and after the numbers that I need. I need to extract check numbers, but cannot seem to find a formula that works best. The check numbers are always 7 numbers long, would you be able to help with a formula?

    182410-Regular Earnings-01/06/2024 0100899 PRO1235
    182410-Employer Social Security -01/06/2024 0100899 PRO1235
    182653-Phone Allow-01/06/2024 0120859 PRO1252

    The check number for employee 182410 would be 010089
    The check number for employee 182653 would be 0120859

    • Hello! To extract the penultimate word from a space-separated text in Excel, we can use a combination of functions.

      =INDEX(TEXTSPLIT(A1, " "), COUNTA(TEXTSPLIT(A1, " "))-1)

      This formula:
      TEXTSPLIT function splits the text in cell A1 into an array of words using the space as the delimiter.
      Uses COUNTA function to count the number of words.
      Retrieves the penultimate word using INDEX function.
      I hope my advice will help you solve your task.

  3. Hi,

    I need help with a formula. So far the TEXTAFTER function is the closest, but I also need to return the delimiter.
    For example:
    Delimiter range (B2:B5) is:
    142
    539
    844
    624
    Text cell (A1)is:
    776499201420108205498514326067
    =TEXTAFTER(A1,(B2:B5),,,))
    returns: 0108205498514326067
    but I need it to return: 1420108205498514326067

    Any advice? Thank you

  4. Thank you for this information. I need help with a function. I'm trying to extract text from a cell that is after 3 characters to the left and ending before a hyphen. The hyphen is not always there. So if the hyphen is not there, can I have it return only the part from 3 from the left to the end and not the entire string? So for example see below. I'm trying to extract the city.
    VA Arlington-123 Elm St
    AZ Phoenix
    CA Los Angeles-345 Maple Rd

    • Hello! Use the MID function to extract a part of the text string from the text. Use the SEARCH function to determine the number of the hyphen position.
      I believe the following formula will help you solve your task:

      =IFERROR(MID(A1,4,SEARCH("-",A1,4)-4),MID(A1,4,30))

  5. Hello Alexander,

    I was hoping you could help me out. I am trying to break a sequence string into parts by displaying each part in its own cell. Here is the sequence: mX*mX*mX*|rArUrArUrKrCrArArCrArCrUrUrCrUrUrArGrArErCrUrArGrArArArUrArGrCrArArGrUrUrArArArArUrArArGrG|rCrUrArGrUrCrCrGrUrUrArUrCrArArCrUrNrGrArArArArVrGrUrGrGrCrArCrCrGrArGrQrCrGrGrU|rGrCrX*mX*mX*mX

    I want my function to search for the | symbols and display each chunk. I want the first cell to display the part furthest to the right "rGrCrX*mX*mX*mX". Second cell this part: "rCrUrArGrUrCrCrGrUrUrArUrCrArArCrUrNrGrArArArArVrGrUrGrGrCrArCrCrGrArGrQrCrGrGrU" and for the 3rd and 4th also. Can I use this function for this?

    Thanks
    Luke

    • Hello!
      I think that your problem cannot be solved with the standard Excel tools. You can split the text into cells using the recommendations of this article: How to split cells in Excel: Text to Columns, Flash Fill and formulas.
      However, you can quickly solve your problem with our Ultimate Suite for Excel. It contains the Split Text tool to divide text by cells using delimiters or a template. The Flip Data tool will help you to reverse the column order in one click.
      It is available as a part of our Ultimate Suite for Excel that you can install in a trial mode and check how it works for free.

    • Older post, but this should work if not already solved.

      =TEXTAFTER(B8,"|",-1)
      rGrCrX*mX*mX*mX

      =TEXTBEFORE(TEXTAFTER(B8,"|",2),"|")
      rCrUrArGrUrCrCrGrUrUrArUrCrArArCrUrNrGrArArArArVrGrUrGrGrCrArCrCrGrArGrQrCrGrGrU

      =TEXTBEFORE(TEXTAFTER(B8,"|"),"|")
      rArUrArUrKrCrArArCrArCrUrUrCrUrUrArGrArErCrUrArGrArArArUrArGrCrArArGrUrUrArArArArUrArArGrG

      =TEXTBEFORE(B8,"|")
      mX*mX*mX*

  6. Hi,

    How would I extract text after a number? and how about after the second number? Let's say there are words and numbers in a cell - think an address, but on steroids where text to column doesn't work (opens to about 15 columns).

    Thank you,
    Elena

  7. Hi, I'm new to excel and wanted to find just one character in a string of characters without destroying the string. Hopefully without programming a script.

    Example: "thebrownfoxjumpsoveralazydog"

    If I wanted to find just the single characters after the letter character "o"

    example 1: instance 1: after first "o" = w
    example 2: instance 2: after second "o" = x
    example 3: instance 3: after third "o" = v

    If you can help with a solution it would be much appreciated.

    Regards,

    Rick

Post a comment



Thank you for your comment!
When posting a question, please be very clear and concise. This will help us provide a quick and relevant solution to
your query. We cannot guarantee that we will answer every question, but we'll do our best :)