Gå til hovedindhold

Find den n. forekomst af et tegn i Excel – 3 hurtige måder

At finde den n'te forekomst af et bestemt tegn i en tekststreng i Excel kan være særligt nyttigt i dataanalyse, hvor du muligvis skal parse strenge eller udtrække information baseret på bestemte afgrænsningstegn eller mønstre. Lad os f.eks. finde den 2. eller 3. forekomst af tegnet "-" i en tekststreng. Jeg vil demonstrere enkle teknikker til effektivt at udføre denne opgave.


Find den n'te forekomst af et tegn i tekststrengen med formel

Du kan lave en formel for at finde den n'te forekomst af et tegn. Gør venligst som dette:

1. Indtast eller kopier følgende formel ind i en celle, hvor du vil have resultatet:

=FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),2))
Bemærk: I ovenstående formel:
  • A2: Cellen, der indeholder strengen.
  • -: Den karakter du leder efter.
  • 2: Den anden forekomst, du vil finde, kan du ændre den til 2 ... efter behov.

2. Træk derefter formelfyldet ned for at udfylde formlen til andre celler, og tegnets 2. position – vises på én gang, se skærmbillede:

Forklaring til formlen:
  • ERSTATNING erstatter den n'te forekomst af tegnet med et tegn, der ikke kan udskrives (CHAR(1)).
  • FIND søger efter dette ikke-udskrivbare tegn, hvilket giver positionen for den n'te forekomst.

Find n'te forekomst af et tegn i tekststreng med Kutools til Excel

Hvis du ikke er fan af at bruge formel eller VBA, kan du overveje et praktisk alternativ – Kutools til Excel. Inden for dets Formel-grupper finder du et nyttigt værktøj – Find hvor tegnet vises Nth i en streng som hurtigt identificerer og returnerer den n'te position af ethvert tegn i en celle.

Efter installation af Kutools til Excelklik Kutools > Formelhjælper > Formelhjælper at åbne Formelhjælper dialog boks. Klik på en celle, hvor du vil placere resultatet. Gør derefter som følger:

  1. Type Opslag fra rullelisten over Formeltype afsnit;
  2. Vælg Find hvor tegnet vises Nth i en streng in Vælg en formel afsnit;
  3. Vælg den celle, der indeholder den streng, du bruger, og skriv derefter det angivne tegn og den n'te forekomst i tekstboksene i Argumenter input afsnit;
  4. Endelig skal du klikke på OK knappen for at få resultatet.

Find n'te forekomst af et tegn i tekststrengl med brugerdefineret funktion

I dette afsnit vil vi undersøge, hvordan du opretter og bruger en UDF til at finde den n'te forekomst af et tegn i Excel, og giver en trin-for-trin guide til at hjælpe dig med at optimere din datahåndtering.

  1. Hold nede i ALT + F11 tasterne, og det åbner Microsoft Visual Basic til applikationer vindue.
  2. Klik indsatte > Moduler, og indsæt følgende makro i modulvinduet.
     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. Luk derefter vba-vinduet. Gå tilbage til regnearket, indtast følgende formel i en celle, og træk derefter udfyldningshåndtaget ned for at udfylde formlen til andre celler, se skærmbillede:
    =FindN("-",A2,3)

  4. Relaterede artikler:

    • Tæl antallet af forekomster af et ord i en kolonne
    • Hvis du har en kolonnedata, der indeholder nogle duplikatværdier som vist nedenfor, og hvad du nu vil gøre, er at tælle antallet af forekomster af et bestemt ord i denne kolonne. Nu med denne vejledning introducerer jeg nogle tricks til at løse det hurtigt i Excel.
    • Udtræk et n'te tegn fra en streng
    • Generelt vil du måske udtrække streng efter et bestemt tegn, men i dette tilfælde vil jeg udtrække det n'te tegn fra en streng som vist nedenfor.
    • Udtræk første/sidste n tegn fra streng
    • For eksempel er der en liste med lange strenge i hver celle, og du vil kun udtrække de første n tegn fra hver streng, ligesom de første 3 tegn i hver streng, og nu kan du bruge følgende metoder til at løse det i Excel .

Bedste kontorproduktivitetsværktøjer

🤖 Kutools AI Aide: Revolutionér dataanalyse baseret på: Intelligent udførelse   |  Generer kode  |  Opret brugerdefinerede formler  |  Analyser data og generer diagrammer  |  Aktiver Kutools funktioner...
Populære funktioner: Find, fremhæv eller identificer dubletter   |  Slet tomme rækker   |  Kombiner kolonner eller celler uden at miste data   |   Runde uden formel ...
Super opslag: VLookup med flere kriterier    Multiple Value VLookup  |   VOpslag på tværs af flere ark   |   Fuzzy Lookup ....
Avanceret rulleliste: Opret hurtigt rulleliste   |  Afhængig rulleliste   |  Multivælg rulleliste ....
Column Manager: Tilføj et bestemt antal kolonner  |  Flyt kolonner  |  Skift synlighedsstatus for skjulte kolonner  |  Sammenlign områder og kolonner ...
Fremhævede funktioner: Grid fokus   |  Designvisning   |   Stor Formel Bar    Arbejdsbog & Ark Manager   |  Ressourcebibliotek (Autotekst)   |  Datovælger   |  Kombiner regneark   |  Krypter/Dekrypter celler    Send e-mails efter liste   |  Superfilter   |   Specielt filter (filter fed/kursiv/gennemstreget...) ...
Top 15 værktøjssæt12 tekst Værktøjer (tilføje tekst, Fjern tegn, ...)   |   50 + Chart Typer (Gantt kort, ...)   |   40+ Praktisk formler (Beregn alder baseret på fødselsdag, ...)   |   19 Indsættelse Værktøjer (Indsæt QR-kode, Indsæt billede fra sti, ...)   |   12 Konvertering Værktøjer (Tal til ord, Valutaomregning, ...)   |   7 Flet og del Værktøjer (Avancerede kombinere rækker, Opdel celler, ...)   |   ... og mere

Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid.  Klik her for at få den funktion, du har mest brug for...

Beskrivelse


Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
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