Note: The other languages of the website are Google-translated. Back to English
English English

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 typ 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ší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2019 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Kompletní funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

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 omezuje stovky kliknutí myší každý den!
officetab dno
Komentáře (3)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Děkuji za tyto vzorce. Velmi nápomocný.
Tento komentář byl moderátorem webu minimalizován
Děkuji, skvělá práce!! S pozdravem Anders
Tento komentář byl moderátorem webu minimalizován
Použití LET k definování proměnných. 
Najít Poslední výskyt;
=LET(strFind,"-",strFlag,"¤",FIND(strFlag,NAHRADIT(A2,strFind,strFlag,DÉLKA(A2)-DÉLKA(NAHRADIT(A2,strFind,""))),1))
Text vpravo od;
LET(strTarget,A2,strFind,"-",strFlag,"¤",RIGHT(strTarget,DÉLKA(strTarget)-FIND(strFlag,SUBSTITUTE(strTarget,strFind,strFlag,LEN(strTarget)-DÉLKA(SUBSTITUTE(strTarget, strFind,""))),1)))
Pokud strFind není v cíli, dojde k chybě. To lze vyřešit zabalením FIND do 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,DÉLKA(strTarget)-IFERROR(FIND(strFlag,SUBSTITUTE(strTarget,strFind,strFlag,DÉLKA(strTarget)-DÉLKA(SUBSTITUTE) strTarget,strFind,""))),1),0)))
Pokud strFind nebude nalezen, vrátí se existující řetězec. Pokud to není žádoucí, použijte hledání samostatně, pak otestujte výsledek >0.
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění