Ugrás a tartalomra

Keresse meg egy karakter n-edik előfordulását az Excelben – 3 gyors módszer

Egy adott karakter n-edik előfordulásának megtalálása egy szöveges karakterláncon belül az Excelben különösen hasznos lehet az adatelemzés során, ahol előfordulhat, hogy karakterláncokat kell elemeznie vagy információkat kell kivonnia bizonyos határolók vagy minták alapján. Például keressük meg a "-" karakter 2. vagy 3. előfordulását egy szöveges karakterláncban. Egyszerű technikákat mutatok be ennek a feladatnak a hatékony végrehajtásához.


Keresse meg egy karakter n-edik előfordulását a szöveges karakterláncban képlettel

Képletet készíthet egy karakter n-edik előfordulásának megtalálásához. Kérjük, tegye a következőket:

1. Írja be vagy másolja be a következő képletet egy cellába, ahol meg szeretné kapni az eredményt:

=FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),2))
Megjegyzések: A fenti képletben:
  • A2: A karakterláncot tartalmazó cella.
  • -: A keresett karakter.
  • 2: A 2. találni kívánt előfordulást módosíthatja 3,4-re…amennyire szüksége van.

2. Ezután húzza le a képlet kitöltését, hogy más cellákba töltse ki a képletet, és a karakter 2. pozíciója egyszerre megjelenik, lásd a képernyőképet:

A képlet magyarázata:
  • HELYETTES lecseréli a karakter n-edik előfordulását egy nem nyomtatható karakterre (CHAR(1)).
  • FIND megkeresi ezt a nem nyomtatható karaktert, megadva az n-edik előfordulás helyét.

Keresse meg a karakter n-edik előfordulását a szöveges karakterláncban a Kutools for Excel segítségével

Ha nem rajong a képlet vagy a VBA használatáért, fontolóra vehet egy kényelmes alternatívát – Kutools az Excel számára. A Formula csoportokon belül egy hasznos segédprogramot talál – Keresse meg, hol jelenik meg a karakter az N-edik karakterláncban amely gyorsan azonosítja és visszaadja bármely karakter n-edik pozícióját egy cellában.

A Kutools for Excel telepítése utánkettyenés Kutools > Formula Segítő > Formula Segítő megnyitni Formula Segítő párbeszédablak. Kattintson arra a cellára, ahová az eredményt el szeretné helyezni. Ezután tegye a következőket:

  1. választ Lookup a legördülő listából Képlet típusa szakasz;
  2. A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Keresse meg, hol jelenik meg a karakter az N-edik karakterláncban in Válasszon képletet szakasz;
  3. Jelölje ki a cellát, amely tartalmazza a használt karakterláncot, majd írja be a megadott karaktert és az n-edik előfordulást a szövegmezőkbe Érvek bevitele szakasz;
  4. Végül kattintson OK gomb az eredmény eléréséhez.

Keresse meg a karakter n-edik előfordulását a szöveges karakterláncban a felhasználói függvény segítségével

Ebben a részben megvizsgáljuk, hogyan hozhat létre és használhat UDF-et egy karakter n-edik előfordulásának megtalálásához az Excelben, lépésről lépésre nyújtva az adatkezelés optimalizálását.

  1. Tartsa lenyomva a ALT + F11 gombokat, és ez megnyitja a Microsoft Visual Basic for Applications ablak.
  2. Kattints betétlap > Modulok, és illessze be a következő makrót a Modul ablakba.
     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. Ezután zárja be a vba ablakot. Menjen vissza a munkalapra, írja be a következő képletet egy cellába, majd húzza le a kitöltő fogantyút a képlet más cellákba való kitöltéséhez, lásd a képernyőképet:
    =FindN("-",A2,3)

  4. Kapcsolódó cikkek:

    • Számolja meg egy szó előfordulásának számát egy oszlopban
    • Ha van olyan oszlopadata, amely tartalmaz néhány duplikált értéket, amint az az alábbi képernyőképen látható, most meg kell tennie, hogy megszámolja egy adott szó előfordulásának számát ebben az oszlopban. Most ezzel az oktatóanyaggal bemutatok néhány trükköt az Excel gyors megoldására.
    • Kivon egy n-edik karaktert egy karakterláncból
    • Általában érdemes kivonni egy karakterláncot egy adott karakter után, de ebben az esetben az n-edik karaktert szeretném kivonni egy karakterláncból, ahogy az alábbi képernyőképen látható.
    • Az első/utolsó n karakter kinyerése a karakterláncból
    • Például van egy lista hosszú karakterláncokkal minden cellában, és az első n karaktert csak az egyes karakterláncokból szeretné kivonni, például az egyes karakterláncok első 3 karakterét, és most a következő módszerekkel oldhatja meg az Excelben .

A legjobb irodai hatékonyságnövelő eszközök

🤖 Kutools AI Aide: Forradalmasítsa az adatelemzést a következők alapján: Intelligens végrehajtás   |  Kód létrehozása  |  Hozzon létre egyéni képleteket  |  Adatok elemzése és diagramok létrehozása  |  A Kutools funkciók meghívása...
Népszerű szolgáltatások: Ismétlődések keresése, kiemelése vagy azonosítása   |  Üres sorok törlése   |  Oszlopok vagy cellák kombinálása adatvesztés nélkül   |   Kerek Formula nélkül ...
Szuper keresés: Több kritérium VLookup    Többértékű VLookup  |   VLookup több munkalapon   |   Fuzzy Lookup ....
Speciális legördülő lista: Gyors legördülő lista létrehozása   |  Függő legördülő lista   |  Többszörösen válassza ki a legördülő listát ....
Oszlopkezelő: Adjon meg egy adott számú oszlopot  |  Oszlopok mozgatása  |  Kapcsolja be a Rejtett oszlopok láthatósági állapotát  |  Tartományok és oszlopok összehasonlítása ...
Kiemelt funkciók: Rács fókusz   |  Design nézet   |   Nagy Formula bár    Munkafüzet és lapkezelő   |  Erőforrás-könyvtár (Auto szöveg)   |  Dátumválasztó   |  Kombinálja a munkalapokat   |  Cellák titkosítása/dekódolása    E-mailek küldése listánként   |  Szuper szűrő   |   Speciális szűrő (félkövér/dőlt/áthúzott szűrés...) ...
A 15 legjobb eszközkészlet12 szöveg Eszközök (Szöveg hozzáadása, Karakterek eltávolítása,...)   |   50 + Táblázatos Típusai (Gantt-diagram,...)   |   40+ Praktikus képletek (Számolja ki az életkort a születésnap alapján,...)   |   19 beszúrás Eszközök (Helyezze be a QR-kódot, Kép beszúrása az útvonalból,...)   |   12 Átalakítás Eszközök (Számok szavakig, Valuta átváltás,...)   |   7 Egyesítés és felosztás Eszközök (Haladó kombinált sorok, Hasított sejtek,...)   |   ... és több

Töltsd fel Excel-készségeidet a Kutools for Excel segítségével, és tapasztald meg a még soha nem látott hatékonyságot. A Kutools for Excel több mint 300 speciális funkciót kínál a termelékenység fokozásához és az időmegtakarításhoz.  Kattintson ide, hogy megszerezze a leginkább szükséges funkciót...

Leírás


Az Office lap füles felületet hoz az Office-ba, és sokkal könnyebbé teszi a munkáját

  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
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