How to find nth occurrence (position) of a character in text string in Excel?

For example, there is a long sentence in Cell A1, see the following screenshot. And now you need to find the 3rd occurrence or position of Character "c" from the text string in Cell A1. Of course, you can count the characters one by one, and get the exact position result. However, here we are going to introduce some easy tips to find the nth occurrence or position of specific character from text string in a cell.

doc-find-nth-position-of-text-string1

Find nth occurrence (position) of a character in a Cell with Find formula

Find nth occurrence (position) of a character in a Cell with VBA

Kutools for Excel: add 120 new features in Excel. Save one hour every day.
Classic Menu for Office: brings back classic menus to Office 2010 and 2013 (includes Office 365).
Office Tab: brings tabbed interface to Office as the use of web browser Chrome, Firefox and Internet Explorer.

arrow blue right bubble Find nth occurrence (position) of a character in a Cell with Find formula

Hot
Amazing! Using Tabs in Excel like Firefox, Chrome, Internet Explore 10!

There are two Find formulas can help you find the nth occurrence or position of specific character from text string in a cells quickly.

The following formula will show you how to find the 3rd occurrence of "c" in Cell A1.

Find Formula 1

In a blank cell, enter the formula =FIND("c",A1,FIND("c",A1)+2).

doc-find-nth-position-of-text-string2

And then press the Enter key. The position of the third letter “c” has been displayed.

Note: You can change the 2 in the formula based on your needs. For example, if you want to find the fourth position of "c", you can change the 2 to 3. And if you want to find the first position of "c", you shuold change 2 to 0.

Find formula 2

In a blank cell, enter the formula =FIND(CHAR(1),SUBSTITUTE(A1,"c",CHAR(1),3)), and press Enter key.

Note: The "3" in the formula means the third "c", you can change it based on your needs.


arrow blue right bubble Find nth occurrence (position) of a character in a Cell with VBA

Actually, you can apply the VB macro to find nth occurrence or position of a specific character in one cell easily.

Step 1: Hold down the ALT + F11 keys, and it opens the Microsoft Visual Basic for Applications window.

Step 2: Click Insert > Module, and paste the following macro in the Module Window.

Function FindN(sFindWhat As String, _
sInputString As String, N As Integer) As Integer
Dim J As Integer
Application.Volatile
FindN = 0
For J = 1 To N
FindN = InStr(FindN + 1, sInputString, sFindWhat)
If FindN = 0 Then Exit For
Next
End Function

Step 3: Now if you want find the exact occurrence of position of third "c" in Cell A1, please enter the formula of =FindN("c",A1,3), and press the Enter key. Then it will return the exact position in the specific cell at once.


Kutools for Excel

More than 120 Advanced Functions for Excel 2013, 2010, 2007 and Office 365.

screen shot

btn read more     btn download     btn purchase

Comments  

+4#DdW2013-10-22 14:42
Find Formula 1 won't work. The third parameter of the Find function is the index where the search should begin (as in: the first x characters of the string are ignored). i.e. if a string contains the letter c at indices 1, 5 and 10 the results are as follows:
=FIND("c",A1,1) will find the first c
=FIND("c",A1,2) through =FIND("c",A1,5) will find the second c
=FIND("c",A1,6) through =FIND("c",A1,10) will find the third c.
anything above won't find anything.
Reply | Reply with quote | Quote
-6#skyyang2013-10-24 06:53
Thank you for finding out this mistake, i'm sorry the formula1 is wrong, the correct formula should be =FIND("c",A1,FIND("c",A1)+2) ,and if you want to find the first letter "c", you just need to change the 2 to 0.
Reply | Reply with quote | Quote
+1#Matthew2013-11-20 22:21
As DdW indicates, the '+2' or '+0' or what-have-you is a 'hard-coded' character position; you'd have to already know where the "c" was, in order to find it.

Formula 2 is spot-on, though: SUBSTITUTE the nth instance of your target string for a unique character that won't otherwise appear in the rest of the text, then FIND that unique character.
Reply | Reply with quote | Quote
-2#Mohit Sharma2013-11-14 06:32
Dear All,

I want to select a particulate string form a cell
Example:-

My Name is Mohit

i want to return any value Like mohit, is, Name, My using a function.
is there any Function or not
Reply | Reply with quote | Quote
0#DdW2013-11-18 05:37
I think there is no specific function for that, since Excel is not built to handle lists of values in one cell. You can build the function yourself by combining the functions mentioned above with LEFT() and RIGHT(). Or you could use VBscripting of course.
Reply | Reply with quote | Quote
0#Geep2014-03-28 09:43
After some playing around I got the following to find the third instance of X and return the position number.

=FIND("X",A1,(FIND("X",A1,FIND("X",A1,1)+1))+1)

The VBA module gets my vote though. Much easier to remember
Reply | Reply with quote | Quote
0#Matthew2014-03-31 01:24
Sure, but you could nest formulae in the "instance number" parameter indefinitely. Formula 2 obviates VBA, making it the best all-round solution.
Reply | Reply with quote | Quote

Add comment


Security code
Refresh