Explanation

The foundation of this formula is the MID function, which extracts a specific number of characters from text, starting at a specific location. To figure out where to start extracting text, we use this expression:

SEARCH("(",B5)+1

This locates the left parentheses and adds 1 to get the position of the first character inside the parentheses. To figure out how many characters to extract, we use this expression:

SEARCH(")",B5)-SEARCH("(",B5)-1

This locates the second parentheses in the text, and subtracts the position of the first parentheses (less one) to get the total number of characters that need to be extracted. With this information, MID extracts just the text inside the parentheses.

Finally, because we want a number as the final result in this particular example, we add zero to text value returned by MID:

+0

This math operation causes Excel to coerce text values to numbers. If you don’t need or want a number at the end, this step is not required .

Explanation

The gist: this formula “floods” the space between words in a text string with a large number of spaces, finds and extracts the substring of interest, and uses the TRIM function to clean up the mess.

Working from the inside out, the original text in B5 is flooded with spaces using SUBSTITUTE:

SUBSTITUTE(B5," ",REPT(" ",99))

This replaces each single space with 99 spaces.

Note: 99 is just an arbitrary number that represents the longest word you need to extract.

Next, the FIND function locates the specific character (in this case, “@”) inside the flooded text:

FIND("@",SUBSTITUTE(B5," ",REPT(" ",99)))-50

FIND returns the position of the “@” in this text, from which 50 is subtracted. Subtracting 50 effectively “walks back” the position to someplace in the middle of the spaces preceding the substring of interest. In the example shown, the calculated position is 366.

The MAX function is used to handle the problem of the substring appearing first in the text. In that case, the position will be negative, and MAX is used to reset to 1.

With a starting positing established , MID is used to extract 99 characters of text, starting at 366 from the text in B5, again flooded with space:

MID(SUBSTITUTE(B5," ",REPT(" ",99)),366,99)

This extracts the substring of interest, with a lot of space characters before and after.

Finally, the TRIM function is used to trim leading and trailing space, and returns substring containing the special character.