Ga naar hoofdinhoud

Vind de zoveelste keer dat een teken voorkomt in Excel – 3 snelle manieren

Auteur: Xiaoyang Laatst gewijzigd: 2024-04-24

Het vinden van de zoveelste keer dat een specifiek teken voorkomt in een tekstreeks in Excel kan met name handig zijn bij gegevensanalyse, waarbij u tekenreeksen mogelijk moet parseren of informatie moet extraheren op basis van bepaalde scheidingstekens of patronen. Laten we bijvoorbeeld de tweede of derde keer zoeken dat het teken "-" voorkomt in een tekstreeks. Ik zal eenvoudige technieken demonstreren om deze taak efficiënt uit te voeren.


Vind de zoveelste keer dat een teken in een tekstreeks voorkomt met de formule

U kunt een formule opstellen om het zoveelste voorkomen van een teken te vinden. Doe het als volgt:

1. Voer de volgende formule in of kopieer deze naar de cel waar u het resultaat wilt krijgen:

=FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),2))
Note: In de bovenstaande formule:
  • A2: De cel die de tekenreeks bevat.
  • -: Het personage dat je zoekt.
  • 2: Het tweede exemplaar dat u wilt vinden, kunt u naar behoefte wijzigen in 2.

2. Sleep vervolgens de formulevulling naar beneden om de formule naar andere cellen te vullen, en de tweede positie van het teken wordt in één keer weergegeven, zie screenshot:

Verklaring van de formule:
  • PLAATSVERVANGER vervangt de zoveelste keer dat het teken voorkomt door een niet-afdrukbaar teken (CHAR(1)).
  • VINDEN zoekt naar dit niet-afdrukbare teken en geeft de positie van het zoveelste exemplaar weer.

Vind het zoveelste exemplaar van een teken in een tekstreeks met Kutools voor Excel

Als je geen fan bent van het gebruik van formules of VBA, kun je een handig alternatief overwegen: Kutools for Excel. Binnen de Formule-groepen vindt u een handig hulpprogramma: Zoek waar het teken N-de in een tekenreeks voorkomt die snel de n-de positie van elk teken in een cel identificeert en retourneert.

Na het installeren van Kutools voor Excel, Klik Kutools > Formule Helper > Formule Helper om de te openen Formule Helper dialoog venster. Klik op een cel waar u het resultaat wilt plaatsen. Doe het dan als volgt:

  1. kies Lookup uit de vervolgkeuzelijst van Formule type sectie;
  2. Kies Zoek waar het teken N-de in een tekenreeks voorkomt in Kies een formule sectie;
  3. Selecteer de cel die de tekenreeks bevat die u gebruikt en typ vervolgens het opgegeven teken en de zoveelste instantie in de tekstvakken in de Argumenten ingevoerd sectie;
  4. Eindelijk, klik OK knop om het resultaat te krijgen.
Tips: Geïnteresseerd in deze functie, alstublieft klik om te downloaden voor een gratis proefperiode van 30 dagen.

Vind de zoveelste keer dat een teken voorkomt in een tekstreeks met de door de gebruiker gedefinieerde functie

In deze sectie onderzoeken we hoe u een UDF kunt maken en gebruiken om de zoveelste keer dat een teken voorkomt in Excel te vinden, en bieden we een stapsgewijze handleiding om u te helpen uw gegevensverwerking te optimaliseren.

  1. Houd de toets ingedrukt ALT + F11 toetsen, en het opent de Microsoft Visual Basic voor toepassingen venster.
  2. Klik Invoegen > Moduleen plak de volgende macro in het modulevenster.
     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. Sluit vervolgens het vba-venster. Ga terug naar het werkblad, voer de volgende formule in een cel in en sleep vervolgens de vulgreep naar beneden om de formule naar andere cellen te vullen, zie screenshot:
    =FindN("-",A2,3)

  4. Gerelateerde artikelen:

    • Tel het aantal keren dat een woord in een kolom voorkomt
    • Als u kolomgegevens heeft die enkele dubbele waarden bevatten, zoals onderstaand screenshot, en wat u nu wilt doen, is het aantal keren tellen van een specifiek woord in deze kolom. Nu met deze tutorial introduceer ik enkele trucs om het snel op te lossen in Excel.
    • Extraheer een n-de teken uit een string
    • Over het algemeen wil je misschien een string extraheren na een specifiek teken, maar in dit geval wil ik het n-de teken uit een string extraheren, zoals hieronder wordt getoond.
    • Extraheer de eerste/laatste n tekens uit de tekenreeks
    • Er is bijvoorbeeld een lijst met lange strings in elke cel en u wilt alleen de eerste n tekens uit elke tekenreeks extraheren, zoals de eerste 3 tekens van elke tekenreeks, en nu kunt u de volgende methoden gebruiken om het in Excel op te lossen .

Beste Office-productiviteitstools

🤖 Kutools AI-assistent: Een revolutie teweegbrengen in de data-analyse op basis van: Intelligente uitvoering   |  Genereer code  |  Aangepaste formules maken  |  Analyseer gegevens en genereer grafieken  |  Roep Kutools-functies aan...
Populaire functies: Zoek, markeer of identificeer duplicaten   |  Verwijder lege rijen   |  Combineer kolommen of cellen zonder gegevens te verliezen   |   Ronde zonder formule ...
Super opzoeken: Meerdere criteria VLookup    VLookup met meerdere waarden  |   VOpzoeken over meerdere bladen   |   Fuzzy opzoeken ....
Geavanceerde vervolgkeuzelijst: Maak snel een vervolgkeuzelijst   |  Afhankelijke vervolgkeuzelijst   |  Multi-select vervolgkeuzelijst ....
Kolom Beheerder: Voeg een specifiek aantal kolommen toe  |  Kolommen verplaatsen  |  Schakel de zichtbaarheidsstatus van verborgen kolommen in  |  Vergelijk bereiken en kolommen ...
Uitgelichte functies: Raster focus   |  Ontwerpweergave   |   Grote formulebalk    Werkmap- en bladbeheer   |  resource Library (Auto-tekst)   |  Datumkiezer   |  Combineer werkbladen   |  Cellen coderen/decoderen    Stuur e-mails per lijst   |  Super filter   |   Speciaal filter (filter vet/cursief/doorhalen...) ...
Top 15 gereedschapsets12 Tekst Tools (toe te voegen tekst, Tekens verwijderen, ...)   |   50+ tabel Types (Gantt Chart, ...)   |   40+ Praktisch Formules (Bereken leeftijd op basis van verjaardag, ...)   |   19 Invoeging Tools (QR-code invoegen, Afbeelding invoegen vanaf pad, ...)   |   12 Camper ombouw Tools (Getallen naar woorden, Currency Conversion, ...)   |   7 Samenvoegen en splitsen Tools (Geavanceerd Combineer rijen, Gespleten cellen, ...)   |   ... en meer

Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie als nooit tevoren. Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en tijd te besparen.  Klik hier om de functie te krijgen die u het meest nodig heeft...

Omschrijving


Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert honderden muisklikken voor u elke 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