Przejdź do głównej zawartości

Jak znaleźć n-te wystąpienie (pozycję) znaku w ciągu tekstowym w programie Excel?

Na przykład w komórce A1 znajduje się długie zdanie, zobacz poniższy zrzut ekranu. Teraz musisz znaleźć trzecie wystąpienie lub pozycję znaku „c” w ciągu tekstowym w komórce A3. Oczywiście możesz policzyć znaki jeden po drugim i uzyskać dokładny wynik pozycji. Jednak tutaj przedstawimy kilka prostych wskazówek, jak znaleźć n-te wystąpienie lub pozycję określonego znaku z ciągu tekstowego w komórce.


Znajdź n-te wystąpienie (pozycję) znaku w komórce za pomocą formuły Znajdź

Istnieją dwie formuły wyszukiwania, które mogą pomóc w szybkim znalezieniu n-tego wystąpienia lub pozycji określonego znaku z ciągu tekstowego w komórce.

Poniższa formuła pokaże, jak znaleźć trzecie wystąpienie litery „c” w komórce A3.

Znajdź Formułę 1

W pustej komórce wprowadź formułę = ZNAJDŹ („c”; A1; ZNAJDŹ („c”; A1) +2).

znajdowanie-dokumentów-n-tej-pozycji-tekstu-ciągu2

A następnie naciśnij Wchodzę klucz. Została wyświetlona pozycja trzeciej litery „c”.

Note: Możesz zmienić 2 w formule w zależności od potrzeb. Na przykład, jeśli chcesz znaleźć czwartą pozycję „c”, możesz zmienić 2 na 3. A jeśli chcesz znaleźć pierwszą pozycję „c”, należy zmienić 2 na 0.

Znajdź formułę 2

W pustej komórce wprowadź formułę = ZNAJDŹ (ZNAK (1); PODSTAW (A1; "c"; ZNAK (1); 3))i naciśnij Wchodzę klawisz.

Note: „3” we wzorze oznacza trzecie „c”, możesz je zmienić w zależności od potrzeb.


Liczba razy, gdy słowo pojawia się w komórce programu Excel

Jeśli słowo pojawia się kilka razy w komórce, które trzeba było policzyć, zwykle możesz je policzyć po kolei. Ale jeśli słowo pojawia się setki razy, ręczne liczenie jest kłopotliwe. Plik Policz razy pojawi się słowo funkcja w Kutools dla programu Excel's Pomocnik formuły grupa może szybko obliczyć, ile razy słowo pojawia się w komórce. Bezpłatny okres próbny z pełnymi funkcjami w ciągu 30 dni!
 
Kutools dla programu Excel: z ponad 300 poręcznymi dodatkami do Excela, możesz wypróbować bez ograniczeń w 30 dniach.

> Znajdź n-te wystąpienie (pozycję) znaku w komórce za pomocą VBA

W rzeczywistości możesz zastosować makro VB, aby łatwo znaleźć n-te wystąpienie lub pozycję określonego znaku w jednej komórce.

Krok 1: Przytrzymaj przycisk ALT + F11 klucze i otwiera plik Microsoft Visual Basic for Applications okno.

Krok 2: Kliknij wstawka > Modułi wklej następujące makro w oknie modułu.

VBA: znajdź n-tą pozycję postaci.

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

Krok 3: Teraz, jeśli chcesz znaleźć dokładne miejsce wystąpienia trzeciego „c” w komórce A1, wprowadź formułę = ZnajdźN („c”, A1,3; XNUMX)i naciśnij Wchodzę klucz. Następnie natychmiast zwróci dokładną pozycję w określonej komórce.


Znajdź n-te wystąpienie (pozycję) znaku w komórce za pomocą Kutools for Excel

Jeśli nie lubisz żadnej formuły ani VBA, możesz wypróbować przydatne narzędzie - Kutools dla programu Excel, Z siedzibą w Formuła grup, możesz znaleźć narzędzie - Znajdź n-te wystąpienie znaku aby szybko zwrócić n-tą pozycję znaku w komórce.

Kutools dla programu Excel, ponad 300 przydatne funkcje, ułatwiają pracę. 

Po bezpłatna instalacja Kutools dla programu Excel, wykonaj poniższe czynności:

1. Wybierz komórkę, dla której chcesz zwrócić wynik, i kliknij Kutools > Pomocnik formuły > Pomocnik formuły . Zobacz zrzut ekranu:

2. Następnie w poppingu Pomocnik formuły okno dialogowe, wykonaj poniższe czynności:

1) Wybierz Lookup z rozwijanej listy Typ formuły Sekcja;

2) Wybierz Znajdź miejsce, w którym znak występuje jako N-ty w ciągu in Wybierz formułę Sekcja;

3) Wybierz komórkę zawierającą użyty ciąg, a następnie wpisz określony znak i n-te wystąpienie w pola tekstowe w Wprowadzanie argumentów

3. kliknij Ok. Otrzymujesz pozycję n-tego wystąpienia znaku w ciągu.

 

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!

 

Comments (28)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Your formula to find the Nth occurrence of a character in a string does not work. Using your example, adding 2 to the results of the imbedded find ensures a starting position for the initial find of a position beyond the 1st two c's but changing the +2 to +3 does not yield the position of the 4th "c", it simply starts the search one character deeper into the string and the result is still the 3rd "c". To find the 4th "c" the search must begin beyond the position of the 3rd "c". I look forward to your new solution.
This comment was minimized by the moderator on the site
Hello, David

Yes, as you said, the first formula does not work correctly, you can apply the second formula:
=FIND(CHAR(1),SUBSTITUTE(A2,"c",CHAR(1),2))

Note: The number "2" in the formula means the second "c", if you want to get the third, fourth "c", just change the number 2 to 3,4 as you need.
Please try, hope it can help you!
This comment was minimized by the moderator on the site
Find formula1 is imperfect. It will be a great help if it is removed. I have lost lot of time trying for 4th occurance of "a" in "vedanarayanan" Thanks.
This comment was minimized by the moderator on the site
To handle the exception of the formula, you can use same with if and iserro
=IF(ISERR(FIND("c",A1,FIND("c",A1)+2)),FIND("c",A1,FIND("c",A1)+0),FIND("c",A1,FIND("c",A1)+2))
This comment was minimized by the moderator on the site
"Substitute" lets you find the Nth occurrence of a term, so combine it with "find" as follows (where 5=5th occurrence):

=FIND(CHAR(1),SUBSTITUTE(A1,"c",CHAR(1),5))
This comment was minimized by the moderator on the site
Excellent! I am glad I scrolled up to review other comments after posting my own.
This comment was minimized by the moderator on the site
This is the correct answer! please replace this whole article with this one line of code.....
This comment was minimized by the moderator on the site
The first formula is completely useless and wrong but it works just correct for this example as the first and second "c"s are adjacent. The correct formula is:


For 2nd occurence -
=FIND("c",A1,FIND("c",A1)+1)

For 3rd occurence -
=FIND("c",A1,FIND("c",A1,FIND("c",A1)+1)+1) and so on...
This comment was minimized by the moderator on the site
Absolutely agree. The +2, or +3 etc.....entirely depends on the spacing between the n and (n+1) occurences of "c". Thus you would have to manually adjust for every cell if you were trying to copy this formula down a column for instance. Essentially the same as manually counting.


Ex. Let's try to find the 4th occurrence of "c" in cell A1 using the provided formula. Per the article we should use +3 in our nested FIND function to find the 4th occurrence.


Text in Cell A1:

"cab car abc cole cube"

Manually counting, the 4th occurrence is the "c" in cole in the character position of 13.


=FIND("c",A1,FIND("c",A1)+3)

The nested function, FIND("c",A1) will find the first occurrence of "c" in position 1.

Therefore,

FIND("c",A1)+3 = 1+3 = 4

Plugging that back into our formula,

=FIND("c",A1,FIND("c",A1)+3) = FIND("c",A1,1+3) = FIND("c",A1,4)

This new formula will look for the first occurrence of "c" beginning from character position 4. The 4th character in the string is the space just after cab.

Therefore, the formula will find the "c" in car and return the value of 5 for our formula. As we know from manually counting we are looking for 13 as the output.
This comment was minimized by the moderator on the site
The firs formula works correct in my version, in the note, it has explained how to find the third or forth or nth "c".

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.
This comment was minimized by the moderator on the site
Try to find out the position of the second c with the first sentence of my above comment as the string using the first formula. You'll get to know how correct it is!
This comment was minimized by the moderator on the site
Hello all,

I have a text in an Excel cell " BY TRANSFER-NEFT*HDFC0000001*N08745987123546*J0032331*KUMAR--"

I need a function to extract just "N08745987123546"

Thanks
This comment was minimized by the moderator on the site
Hello, do you want to extract the numbers after No and the number of numbers are fixed? If so, you can use Kutools for Exccel's Extract text function, type No????to extract.
This comment was minimized by the moderator on the site
HI ALL,
I have a text in an Excel cell " BY TRANSFER-NEFT*HDHC0065431*N053112345624801*K0038331*krishna--"
I need a function to extract just "N053112345624801"
This comment was minimized by the moderator on the site
Formula 1 doesn't work on fourth, fifth, sixth etc. so (+3,4,5) will always show third position of letter "c" which is 19 second formula is working though.
This comment was minimized by the moderator on the site
Hello all, I have a text in an Excel cell "23 floyd lane, longville,KN 14564" I need a function to extract just "longville" Thanks
This comment was minimized by the moderator on the site
If you must use a function, try: =TRIM(MID(A1,SEARCH(",",A1)+1,SEARCH("!@#",SUBSTITUTE(A1,",","!@#",2))-SEARCH(",",A1)-1)) Otherwise, you might consider Data > Text to Columns > Delimited (using a comma as the separator).
This comment was minimized by the moderator on the site
Try this: =INDEX(SMALL(IF(MID(A1,MATCH(ROW(INDIRECT(1&":"&LEN(A1))),ROW(INDIRECT(1&":"&LEN(A1))),0),1)="c",MATCH(ROW(INDIRECT(1&":"&LEN(A1))),ROW(INDIRECT(1&":"&LEN(A1))),0),""),MATCH(ROW(INDIRECT(1&":"&LEN(A1)-LEN(SUBSTITUTE(A1,"c","")))),ROW(INDIRECT(1&":"&LEN(A1)-LEN(SUBSTITUTE(A1,"c","")))),0)),2) where "c" is the character required and 2 is the position. Note this is an array formula.
This comment was minimized by the moderator on the site
this is simpler: =INDEX(SMALL(IF(MID(A1,ROW(INDIRECT(1&":"&LEN(A1))),1)="c",ROW(INDIRECT(1&":"&LEN(A1))),""),ROW(INDIRECT(1&":"&LEN(A1)-LEN(SUBSTITUTE(A1,"c",""))))),2)
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations