Salt la conținutul principal

Găsiți a n-a apariție a unui caracter în Excel - 3 moduri rapide

Autor: Xiaoyang Ultima modificare: 2024-04-24

Găsirea a n-a apariție a unui anumit caracter într-un șir de text în Excel poate fi deosebit de utilă în analiza datelor, unde ar putea fi necesar să analizați șiruri sau să extrageți informații pe baza anumitor delimitatori sau modele. De exemplu, să găsim a doua sau a treia apariție a caracterului „-” într-un șir de text. Voi demonstra tehnici simple pentru a îndeplini eficient această sarcină.


Găsiți a n-a apariție a unui caracter în șirul de text cu formula

Puteți crea o formulă pentru a găsi a n-a apariție a unui personaj. Vă rugăm să faceți așa:

1. Introduceți sau copiați următoarea formulă într-o celulă în care doriți să obțineți rezultatul:

=FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),2))
notițe: În formula de mai sus:
  • A2: Celula care conține șirul.
  • -: Personajul pe care îl cauți.
  • 2: A doua apariție pe care doriți să o găsiți, o puteți schimba la 2... după cum aveți nevoie.

2. Apoi, trageți formula de umplere în jos pentru a completa formula în alte celule, iar a doua poziția a caracterului - sunt afișate simultan, vedeți captura de ecran:

Explicația formulei:
  • SUBSTITUI înlocuiește a n-a apariție a caracterului cu un caracter neprintabil (CHAR(1)).
  • FIND caută acest caracter neimprimabil, dând poziția celei de-a n-a apariții.

Găsiți a n-a apariție a unui caracter în șirul de text cu Kutools pentru Excel

Dacă nu sunteți un fan al utilizării formulei sau VBA, ați putea lua în considerare o alternativă convenabilă - Kutools pentru Excel. În cadrul grupurilor sale de formule, veți găsi un utilitar util - Găsiți unde apare personajul al N-lea într-un șir care identifică rapid și returnează a n-a poziție a oricărui caracter dintr-o celulă.

După instalarea Kutools pentru Excel, Faceți clic pe Kutools > Formula Helper > Formula Helper pentru a deschide Formula Helper căsuță de dialog. Faceți clic pe o celulă în care doriți să plasați rezultatul. Apoi, procedați după cum urmează:

  1. Selectați Căutare din lista derulantă a Tipul formulei secțiune;
  2. Alege Găsiți unde apare personajul al N-lea într-un șir in Alegeți o formulă secțiune;
  3. Selectați celula care conține șirul pe care îl utilizați, apoi introduceți caracterul specificat și a n-a apariție în casetele de text din Argumente de intrare secțiune;
  4. În cele din urmă, faceți clic pe OK butonul pentru a obține rezultatul.

Găsiți a doua apariție a unui caracter în șirul de text cu funcția definită de utilizator

În această secțiune, vom explora cum să creați și să utilizați un UDF pentru a găsi a n-a apariție a unui caracter în Excel, oferind un ghid pas cu pas pentru a vă ajuta să vă optimizați gestionarea datelor.

  1. Țineți apăsată tasta ALT + F11 tastele și deschide fișierul Microsoft Visual Basic pentru aplicații fereastră.
  2. Clic Insera > Moduleși lipiți următoarea macro în fereastra modulului.
     Function FindN(sFindWhat As String, _
    sInputString As String, N As Integer) As Integer
    'Updateby Extendoffice
    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
  3. Apoi, închideți fereastra vba. Reveniți la foaia de lucru, introduceți următoarea formulă într-o celulă, apoi trageți mânerul de umplere în jos pentru a completa formula în alte celule, vedeți captura de ecran:
    =FindN("-",A2,3)

  4. Articole pe aceeaşi temă:

    • Numărați numărul de apariții ale unui cuvânt într-o coloană
    • Dacă aveți o coloană de date care include câteva valori duplicat, așa cum se arată în imaginea de mai jos, iar acum ceea ce doriți să faceți este să numărați numărul aparițiilor unui anumit cuvânt din această coloană. Acum, cu acest tutorial, introduc câteva trucuri pentru a-l rezolva rapid în Excel.
    • Extrageți un al n-lea caracter dintr-un șir
    • În general, este posibil să doriți să extrageți șirul după un anumit caracter, dar în acest caz, vreau să extrag al-lea caracter dintr-un șir, așa cum se arată mai jos.
    • Extrageți primele/ultimele n caractere din șir
    • De exemplu, există o listă cu șiruri lungi în fiecare celulă și doriți să extrageți primele n caractere numai din fiecare șir, cum ar fi primele 3 caractere ale fiecărui șir, iar acum puteți utiliza următoarele metode pentru ao rezolva în Excel .

Cele mai bune instrumente de productivitate de birou

🤖 Kutools AI Aide: Revoluționați analiza datelor pe baza: Execuție inteligentă   |  Generați codul  |  Creați formule personalizate  |  Analizați datele și generați diagrame  |  Invocați funcțiile Kutools...
Caracteristici populare: Găsiți, evidențiați sau identificați duplicatele   |  Ștergeți rândurile goale   |  Combinați coloane sau celule fără a pierde date   |   Rundă fără Formula ...
Super căutare: VLookup cu mai multe criterii    VLookup cu valori multiple  |   VLookup pe mai multe foi   |   Căutare fuzzy ....
Listă derulantă avansată: Creați rapid o listă derulantă   |  Listă drop-down dependentă   |  Listă derulantă cu selectare multiplă ....
Manager de coloane: Adăugați un număr specific de coloane  |  Mutați coloanele  |  Comutați starea vizibilității coloanelor ascunse  |  Comparați intervale și coloane ...
Caracteristici prezentate: Focus pe grilă   |  Vedere de proiectare   |   Big Formula Bar    Manager registru de lucru și foi   |  Biblioteca de resurse (Text automat)   |  Data Picker   |  Combinați foi de lucru   |  Criptare/Decriptare celule    Trimiteți e-mailuri după listă   |  Super Filtru   |   Filtru special (filtrează bold/italic/barat...) ...
Top 15 seturi de instrumente12 Text Instrumente (Adăuga text, Eliminați caractere,...)   |   50+ Diagramă Tipuri de (Gantt Chart,...)   |   40+ Practic Formule (Calculați vârsta pe baza zilei de naștere,...)   |   19 inserare Instrumente (Introduceți codul QR, Inserați imaginea din cale,...)   |   12 Convertire Instrumente (Numere la cuvinte, conversie valutara,...)   |   7 Merge & Split Instrumente (Rânduri combinate avansate, Celule divizate,...)   |   ... și altele

Îmbunătățiți-vă abilitățile Excel cu Kutools pentru Excel și experimentați eficiența ca niciodată. Kutools pentru Excel oferă peste 300 de funcții avansate pentru a crește productivitatea și a economisi timp.  Faceți clic aici pentru a obține funcția de care aveți cea mai mare nevoie...

Descriere


Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
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