Preskoči na glavno vsebino

Poiščite n-to pojavitev znaka v Excelu – 3 hitri načini

Iskanje n-te pojavitve določenega znaka v besedilnem nizu v Excelu je lahko še posebej uporabno pri analizi podatkov, kjer boste morda morali razčleniti nize ali izvleči informacije na podlagi določenih ločil ali vzorcev. Na primer, poiščimo 2. ali 3. pojavitev znaka "-" v besedilnem nizu. Predstavil bom enostavne tehnike za učinkovito izvedbo te naloge.


Poiščite n-to pojavitev znaka v besedilnem nizu s formulo

Ustvarite lahko formulo za iskanje n-te pojavitve znaka. Prosim naredite takole:

1. Vnesite ali kopirajte naslednjo formulo v celico, kjer želite dobiti rezultat:

=FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),2))
Opombe: V zgornji formuli:
  • A2: celica, ki vsebuje niz.
  • -: Lik, ki ga iščete.
  • 2: 2. pojavitev, ki jo želite najti, lahko spremenite v 3,4 ... kot želite.

2. Nato povlecite zapolnitev formule navzdol, da zapolnite formulo v druge celice, in 2nd položaj znaka – se prikažejo naenkrat, glejte posnetek zaslona:

Pojasnilo formule:
  • NAMESTITEV nadomesti n-to pojavitev znaka z nenatisljivim znakom (CHAR(1)).
  • POIŠČITE išče ta nenatisljiv znak in poda položaj n-te pojavitve.

Poiščite n-to pojavitev znaka v besedilnem nizu s Kutools za Excel

Če niste ljubitelj uporabe formule ali VBA, lahko razmislite o priročni alternativi – Kutools za Excel. Znotraj njegovih skupin formul boste našli uporaben pripomoček – Poiščite, kje se znak pojavi Nth v nizu ki hitro prepozna in vrne n-ti položaj katerega koli znaka v celici.

Po namestitvi Kutools za Excel, Kliknite Kutools > Pomočnik za formulo > Pomočnik za formulo da odprete Pomočnik za formulo pogovorno okno. Kliknite celico, kamor želite dati rezultat. Nato naredite naslednje:

  1. Izberite Iskanje s spustnega seznama Vrsta formule odsek;
  2. Izberite Poiščite, kje se znak pojavi Nth v nizu in Izberite formulo odsek;
  3. Izberite celico, ki vsebuje niz, ki ga uporabljate, nato vnesite podani znak in n-to pojavitev v besedilna polja v Vnos argumentov odsek;
  4. Končno kliknite OK gumb, da dobite rezultat.

Poiščite n-to pojavitev znaka v besedilnem nizu z uporabniško določeno funkcijo

V tem razdelku bomo raziskali, kako ustvariti in uporabiti UDF za iskanje n-te pojavitve znaka v Excelu, in vam ponudili vodnik po korakih, ki vam bo pomagal optimizirati ravnanje s podatki.

  1. Drži dol ALT + F11 in odpre tipko Microsoft Visual Basic za aplikacije okno.
  2. klik Vstavi > Moduliin prilepite naslednji makro v okno modula.
     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. Nato zaprite okno vba. Vrnite se na delovni list, vnesite naslednjo formulo v celico in nato povlecite ročico za polnjenje navzdol, da formulo zapolnite v druge celice, glejte posnetek zaslona:
    =FindN("-",A2,3)

  4. Sorodni članki:

    • Preštejte število pojavitev besede v stolpcu
    • Če imate podatke v stolpcu, ki vključujejo nekaj podvojenih vrednosti, kot je prikazano na sliki spodaj, zdaj želite prešteti število ponovitev določene besede v tem stolpcu. Zdaj s to vadnico predstavljam nekaj trikov za hitro reševanje v Excelu.
    • Izvlecite n-ti znak iz niza
    • Na splošno boste morda želeli izvleči niz za določenim znakom, vendar v tem primeru želim izvleči n-ti znak iz niza, kot je prikazano na spodnjem posnetku zaslona.
    • Izvleči prvih/zadnjih n znakov iz niza
    • Na primer, v vsaki celici je seznam z dolgimi nizi in želite iz vsakega niza izvleči samo prvih n znakov, kot so prvi 3 znaki vsakega niza, zdaj pa lahko z naslednjimi metodami to rešite v Excelu .

Najboljša pisarniška orodja za produktivnost

🤖 Kutools AI Aide: Revolucionirajte analizo podatkov na podlagi: Inteligentna izvedba   |  Ustvari kodo  |  Ustvarite formule po meri  |  Analizirajte podatke in ustvarite grafikone  |  Prikličite funkcije Kutools...
Priljubljene funkcije: Poiščite, označite ali identificirajte dvojnike   |  Izbriši prazne vrstice   |  Združite stolpce ali celice brez izgube podatkov   |   Krog brez formule ...
Super iskanje: Več kriterijev VLookup    Multiple Value VLookup  |   VLookup na več listih   |   Nejasno iskanje ....
Napredni spustni seznam: Hitro ustvarite spustni seznam   |  Odvisni spustni seznam   |  Večkrat izberite spustni seznam ....
Upravitelj stolpcev: Dodajte določeno število stolpcev  |  Premakni stolpce  |  Preklop stanja vidnosti skritih stolpcev  |  Primerjaj obsege in stolpce ...
Predstavljene funkcije: Mrežni fokus   |  Pogled oblikovanja   |   Velika vrstica formule    Upravitelj delovnih zvezkov in listov   |  Knjižnica virov (Samodejno besedilo)   |  Izbirnik datuma   |  Združite delovne liste   |  Šifriranje/dešifriranje celic    Pošljite e-pošto po seznamu   |  Super filter   |   Poseben filter (filter krepko/ležeče/prečrtano ...) ...
15 najboljših kompletov orodij12 Besedilo Orodja (dodajanje besedila, Odstrani znake,...)   |   50 + Graf Vrste (Gantt Chart,...)   |   40+ Praktično Formule (Izračunajte starost glede na rojstni dan,...)   |   19 vstavljanje Orodja (Vstavite kodo QR, Vstavi sliko s poti,...)   |   12 Pretvorba Orodja (Številke v besede, Pretvorba valut,...)   |   7 Spoji in razdeli Orodja (Napredne kombinirane vrstice, Razdeljene celice,...)   |   ... in več

Napolnite svoje Excelove spretnosti s Kutools za Excel in izkusite učinkovitost kot še nikoli prej. Kutools za Excel ponuja več kot 300 naprednih funkcij za povečanje produktivnosti in prihranek časa.  Kliknite tukaj, če želite pridobiti funkcijo, ki jo najbolj potrebujete...

Opis


Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
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