Přejít k hlavnímu obsahu

Jak najít první, poslední nebo n-tý výskyt znaku v aplikaci Excel?

Předpokládejme, že máte následující seznam textových řetězců, které obsahují znak „-“, a nyní chcete získat poslední nebo n-tý výskyt znaku „-“, máte nějaké dobré nápady, jak tento problém vyřešit?


Najděte poslední výskyt znaku pomocí vzorců

Zde je několik vzorců, které vám pomohou najít poslední pozici konkrétního znaku, postupujte takto:

1. Vedle textového řetězce zadejte nebo zkopírujte některý z následujících vzorců do prázdné buňky:

=SEARCH("^^",SUBSTITUTE(A2,"-","^^",LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))))
=LOOKUP(2,1/(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)="-"),ROW(INDIRECT("1:"&LEN(A2))))

2. Poté přetáhněte úchyt výplně do rozsahu, na který chcete použít tento vzorec, a dostanete poslední výskyt konkrétního znaku „-“, viz screenshot:

Poznámka: Ve výše uvedených vzorcích A2 označuje hodnotu buňky, kterou chcete použít. A "-”Znamená konkrétní znak, který chcete získat na poslední pozici, můžete jej podle potřeby změnit na jakékoli jiné znaky.


Najděte poslední výskyt znaku pomocí funkce definované uživatelem

Chcete-li získat pozici posledního znaku „-“, můžete také vytvořit funkci definovanou uživatelem, postupujte takto:

1. Otevřete list, který chcete použít.

2. Podržte ALT + F11 klávesy pro otevření Okno Microsoft Visual Basic pro aplikace.

3. Pak klikněte na tlačítko Vložit > Modula vložte následující makro do souboru Okno modulu.

Kód VBA: najít poslední výskyt znaku

Function LastpositionOfChar(strVal As String, strChar As String) As Long
LastpositionOfChar = InStrRev(strVal, strChar)
End Function

4. Poté tento kód uložte a zavřete, vraťte se do listu a zadejte tento vzorec = lastpositionofchar (A2, "-") do prázdné buňky kromě vašich dat, viz screenshot:

5. A pak přetáhněte popisovač výplně do rozsahu, který potřebujete k použití tohoto vzorce, a výskyt posledního znaku „-“ byl extrahován z textových řetězců jako následující snímek obrazovky:

Poznámka: Ve výše uvedeném vzorci: A2 je buňka obsahující data, která chcete použít, a „-„Je postava, kterou potřebujete najít na své poslední pozici, můžete ji upravit podle svých potřeb.


Najděte první nebo n-tý výskyt znaku pomocí vzorce

Chcete-li získat první nebo nou pozici konkrétního znaku, použijte následující vzorec:

1. Zadejte nebo zkopírujte níže uvedené vzorce do prázdné buňky, kam chcete umístit výsledek, a stiskněte vstoupit klíč k získání prvního výsledku:

=FIND(CHAR(160),SUBSTITUTE(A2,"-",CHAR(160),2))

2. Potom přetáhněte úchyt výplně dolů do buněk, na které chcete použít tento vzorec, a byly vypočítány pozice druhého znaku "-", viz screenshot:

Poznámka: Ve výše uvedených vzorcích A2 označuje hodnotu buňky, kterou chcete použít, “-”Znamená konkrétní znak, jehož číslo chcete získat, číslo 2 znamená zadaný výskyt znaku, který chcete získat.


Najděte první nebo n-tý výskyt konkrétního znaku pomocí snadné funkce

S Kutools pro ExcelJe Najděte, kde se znak v řetězci objeví N-tý nástroj, můžete rychle a snadno získat pozici prvního nebo n-tého konkrétního znaku.

Poznámka:Použít toto Najděte, kde se znak v řetězci objeví N-týNejprve byste si měli stáhnout soubor Kutools pro Excela poté tuto funkci rychle a snadno aplikujte.

Po instalaci Kutools pro Excel, udělejte prosím toto:

Například chci získat druhý výskyt znaku „-“, postupujte takto:

1. Klikněte na buňku, kam chcete umístit výsledek.

2. Pak klikněte na tlačítko Kutools > Pomocník vzorců > Pomocník vzorců, viz screenshot:

3. V Pomocník vzorců dialogové okno:

  • vybrat Vyhledávání možnost z nabídky Vzorec Styl rozbalovací seznam;
  • Pak zvolte Najděte, kde se znak v řetězci objeví N-tý z Vyberte si fromula seznam;
  • v Zadání argumentů Oddíl, vyberte buňku obsahující textový řetězec, který chcete použít, a zadejte znak, který chcete získat jeho pozici, nakonec zadejte číslo, které chcete získat pozici znaku.

4. Pak klikněte na tlačítko Ok Klepněte na tlačítko a potom přetáhněte úchyt výplně dolů do buněk, které chcete získat, abyste získali následující výsledek, jak potřebujete.

Stáhněte si zdarma zkušební verzi Kutools pro Excel!


Více relativních článků:

  • Extrahujte všechna kromě prvního / posledního slova v aplikaci Excel
  • Chcete-li extrahovat všechna slova z buňky, ale první nebo poslední slovo vám pomůže odstranit nechtěné slovo, které potřebujete, v tomto případě můžete samozřejmě zkopírovat hledaná slova a vložit je do jedné buňky po jednom. Bude se to ale nudit, pokud je třeba extrahovat více hodnot buněk kromě prvního nebo posledního slova. Jak jste mohli rychle a snadno extrahovat všechna slova kromě prvního nebo posledního v aplikaci Excel?
  • Extrahujte znaky zprava doleva v buňce
  • Tento článek bude hovořit o tahání nebo extrahování znaků zprava v buňce, dokud nebude dosaženo mezery pro získání následujícího výsledku v listu aplikace Excel. Užitečný vzorec v tomto článku může tuto práci vyřešit rychle a snadno.
  • Odeberte první, poslední X znaky nebo určité znaky polohy
  • Tento článek bude hovořit o tahání nebo extrahování znaků zprava v buňce, dokud nebude dosaženo mezery pro získání následujícího výsledku v listu aplikace Excel. Užitečný vzorec v tomto článku může tuto práci vyřešit rychle a snadno.
  • Najděte pozici prvního malého písmene
  • Pokud máte seznam textových řetězců, které obsahují velká i malá písmena, nyní chcete znát pozici prvního malého písmene z nich v listu aplikace Excel. Jak byste mohli rychle získat výsledek, aniž byste je počítali jeden po druhém?

Nejlepší nástroje pro produktivitu v kanceláři

🤖 Kutools AI asistent: Revoluční analýza dat založená na: Inteligentní provedení   |  Generovat kód  |  Vytvořte vlastní vzorce  |  Analyzujte data a generujte grafy  |  Vyvolejte funkce Kutools...
Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

Popis


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
Comments (3)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Using LET to define variables. 
Find Last occurrence of;
=LET(strFind,"-",strFlag,"¤",FIND(strFlag,SUBSTITUTE(A2,strFind,strFlag,LEN(A2)-LEN(SUBSTITUTE(A2,strFind,""))),1))
Text to right of;
LET(strTarget,A2,strFind,"-",strFlag,"¤",RIGHT(strTarget,LEN(strTarget)-FIND(strFlag,SUBSTITUTE(strTarget,strFind,strFlag,LEN(strTarget)-LEN(SUBSTITUTE(strTarget,strFind,""))),1)))
This gives an error if strFind is not in the target. This can be solved by wrapping FIND in an IFERROR. 
LET(strTarget,A2,strFind,"-",strFlag,"¤",IFERROR(FIND(strFlag,SUBSTITUTE(strTarget,strFind,strFlag,LEN(strTarget)-LEN(SUBSTITUTE(strTarget,strFind,""))),1),0))
LET(strTarget,A2,strFind,"-",strFlag,"¤",RIGHT(strTarget,LEN(strTarget)-IFERROR(FIND(strFlag,SUBSTITUTE(strTarget,strFind,strFlag,LEN(strTarget)-LEN(SUBSTITUTE(strTarget,strFind,""))),1),0)))
This will return the existing string if strFind is not found. If this is not desired use the find separately then test for result>0.
This comment was minimized by the moderator on the site
Thank You, great work !! Best Regards Anders
This comment was minimized by the moderator on the site
Thank you for these formulas. Very helpful.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations