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

Jak najít n-tý výskyt (pozici) znaku v textovém řetězci v aplikaci Excel?

Například v buňce A1 je dlouhá věta, viz následující snímek obrazovky. A teď musíte najít 3. výskyt nebo pozici znaku "c" z textového řetězce v buňce A1. Samozřejmě můžete počítat znaky jeden po druhém a získat přesný výsledek pozice. Zde však představíme několik jednoduchých tipů, jak najít n-tý výskyt nebo pozici konkrétního znaku z textového řetězce v buňce.


Najděte n-tý výskyt (pozici) znaku v buňce pomocí vzorce Najít

Existují dva vzorce hledání, které vám pomohou rychle najít n-tý výskyt nebo pozici konkrétního znaku z textového řetězce v buňkách.

Následující vzorec vám ukáže, jak najít 3. výskyt „c“ v buňce A1.

Najděte formuli 1

Do prázdné buňky zadejte vzorec = FIND ("c", A1, FIND ("c", A1) +2).

doc-find-n-position-of-text-string2

A poté stiskněte vstoupit klíč. Byla zobrazena poloha třetího písmene „c“.

Poznámka: Hodnotu 2 ve vzorci můžete změnit podle svých potřeb. Například pokud chcete najít čtvrtou pozici „c“, můžete změnit 2 na 3. A pokud chcete najít první pozici „c“, změňte 2 na 0.

Najděte vzorec 2

Do prázdné buňky zadejte vzorec = NAJÍT (CHAR (1), NÁHRADA (A1, "c", CHAR (1), 3)), a stiskněte tlačítko vstoupit klíč.

Poznámka: „3“ ve vzorci znamená třetí „c“, můžete jej změnit podle svých potřeb.


Počet zobrazení slova v buňce aplikace Excel

Pokud se v buňce objeví několikrát slovo, které je třeba spočítat, obvykle je můžete spočítat po jednom. Pokud se ale slovo objeví stokrát, je manuální počítání problematické. The Počet zobrazení slova funkce v Kutools pro Excel's Pomocník vzorců skupina může rychle vypočítat počet výskytů slova v buňce. Bezplatná zkušební verze se všemi funkcemi v
30
dní!
 
Kutools pro Excel: s více než
300
praktické doplňky aplikace Excel, které lze zdarma vyzkoušet bez omezení
30
dnů.

> Najděte n-tý výskyt (pozici) znaku v buňce pomocí VBA

Ve skutečnosti můžete použít makro VB pro snadné vyhledání n-tého výskytu nebo polohy konkrétního znaku v jedné buňce.

Krok 1: Podržte stisknuté tlačítko ALT + F11 klíče a otevře se Microsoft Visual Basic pro aplikace okno.

Krok 2: Klepněte na tlačítko Vložit > Modula vložte následující makro do okna modulu.

VBA: Najděte devátou pozici znaku.

Function FindN(sFindWhat As String, _
sInputString As String, N As Integer) As Integer
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

Krok 3: Nyní, pokud chcete najít přesný výskyt pozice třetího "c" v buňce A1, zadejte vzorec = FindN ("c", A1,3), a stiskněte tlačítko vstoupit klíč. Poté najednou vrátí přesnou pozici v konkrétní buňce.


Najděte n-tý výskyt (pozici) znaku v buňce pomocí programu Kutools pro Excel

Pokud se vám nelíbí ani formule, ani VBA, můžete zkusit šikovný nástroj - Kutools pro Excel, S jeho Vzorec skupiny, můžete najít nástroj - Najděte n-tý výskyt postavy pro rychlé vrácení n-té pozice znaku v buňce.

Kutools pro Excel, s více než
300
užitečné funkce, které vám usnadní práci. 

Po instalace zdarma Kutools pro Excel, prosím, postupujte takto:

1. Vyberte buňku, do které chcete vrátit výsledek, a klepněte na Kutools > Pomocník vzorců > Pomocník vzorců . Viz snímek obrazovky:

2. Pak v praskání Pomocník vzorců dialogové okno, postupujte takto:

1) Vyberte Vyhledávání z rozevíracího seznamu Typ vzorce sekce;

2) Vyberte Najděte místo, kde se postava objevuje na N-tom místě v řetězci in Vyberte vzorec sekce;

3) Vyberte buňku obsahující řetězec, který používáte, poté zadejte zadaný znak a n-tý výskyt do textových polí v Zadání argumentů sekce.

3. cvaknutí Ok. Získáte pozici n-tého výskytu znaku v řetězci.

 


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-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné 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 snižuje stovky kliknutí myší každý den!
officetab dno

 

Komentáře (28)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Najít Formuli 1 nebude fungovat. Třetím parametrem funkce Najít je index, kde má hledání začít (jako v: prvních x znaků řetězce je ignorováno). tj. pokud řetězec obsahuje písmeno c na indexech 1, 5 a 10, výsledky jsou následující: =FIND("c",A1,1) najde první c =FIND("c",A1,2) až = FIND("c",A1,5) najde druhé c =FIND("c",A1,6) až =FIND("c",A1,10) najde třetí c. nic výše nenajde nic.
Tento komentář byl moderátorem webu minimalizován
Děkujeme za zjištění této chyby, omlouvám se, vzorec1 je chybný, měl by být správný vzorec = FIND ("c", A1, FIND ("c", A1) +2) a pokud chcete najít první písmeno "c", stačí změnit 2 na 0.
Tento komentář byl moderátorem webu minimalizován
Jak naznačuje DdW, '+2' nebo '+0' nebo what-have-you je 'pevně zakódovaná' pozice znaku; museli byste už vědět, kde to "c" bylo, abyste ho našli. Formule 2 je však na místě: NAHRAĎTE n-tou instanci cílového řetězce za jedinečný znak, který se jinak neobjeví ve zbytku textu, a pak tento jedinečný znak NAJDĚTE.
Tento komentář byl moderátorem webu minimalizován
Jsem schopen najít druhou instanci, ale co 3., 4. a 'n'th. Nemohu získat 3. instanci (stejně jako 4.). Mám data, která obsahují 50 až 60 instancí. tak co bych měl dělat?
Tento komentář byl moderátorem webu minimalizován
sanjeev, jak jsem řekl před dvěma lety, použijte vzorec 2: =FIND(CHAR(1),SUBSTITUTE("LOOK_IN","LOOK_FOR",CHAR(1),INST_NUM)) Kde LOOK_IN je řetězec (nebo buňka), kterou jste znovu hledat; LOOK_FOR je řetězec, který hledáte; a INST_NUM je celočíselná instance LOOK_FOR, kterou chcete identifikovat. Tedy =FIND(CHAR(1),SUBSTITUTE("AHOJ SVĚTE","L",CHAR(1),3) vrátí 10 (pozice třetího "L").
Tento komentář byl moderátorem webu minimalizován
Vážení, chci z buňky vybrat řetězec částic Příklad:- My Name is Mohit Chci vrátit libovolnou hodnotu Jako mohit, is, Name, My pomocí funkce. existuje nějaká funkce nebo ne
Tento komentář byl moderátorem webu minimalizován
Myslím, že pro to neexistuje žádná specifická funkce, protože Excel není postaven na zpracování seznamů hodnot v jedné buňce. Funkci si můžete sestavit sami kombinací výše uvedených funkcí s LEFT() a RIGHT(). Nebo můžete samozřejmě použít VBscripting.
Tento komentář byl moderátorem webu minimalizován
Po nějakém hraní jsem dostal následující, abych našel třetí instanci X a vrátil číslo pozice. =FIND("X",A1,(FIND("X",A1,FIND("X",A1,1)+1))+1) Modul VBA přesto získává můj hlas. Mnohem snadněji zapamatovatelné
Tento komentář byl moderátorem webu minimalizován
Jistě, ale vzorce můžete do parametru „číslo instance“ vnořovat donekonečna. Formule 2 se vyhýbá VBA, což z ní činí nejlepší všestranné řešení.
Tento komentář byl moderátorem webu minimalizován
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), kde "c" je požadovaný znak a 2 je pozice. Všimněte si, že toto je maticový vzorec.
Tento komentář byl moderátorem webu minimalizován
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)
Tento komentář byl moderátorem webu minimalizován
Zdravím všechny, v buňce Excelu mám text "23 floyd lane, longville,KN 14564" Potřebuji funkci pro extrakci právě "longville" Díky
Tento komentář byl moderátorem webu minimalizován
Pokud musíte použít funkci, zkuste: =TRIM(MID(A1,SEARCH(",",A1)+1,SEARCH("!@#",SUBSTITUTE(A1,",","!@#",2 ))-SEARCH(",",A1)-1)) V opačném případě můžete zvážit Data > Text do sloupců > Oddělovač (použijte čárku jako oddělovač).
Tento komentář byl moderátorem webu minimalizován
Formule 1 nefunguje na čtvrtém, pátém, šestém atd., takže (+3,4,5) bude vždy ukazovat třetí pozici písmene "c", což je 19 sekund, když vzorec funguje.
Tento komentář byl moderátorem webu minimalizován
HI ALL,
Mám text v buňce aplikace Excel "PŘEVODEM-NEFT*HDHC0065431*N053112345624801*K0038331*krishna--"
Potřebuji funkci k extrahování pouze "N053112345624801"
Tento komentář byl moderátorem webu minimalizován
Dobrý den všem,

Mám text v buňce aplikace Excel " PŘEVODEM-NEFT*HDFC0000001*N08745987123546*J0032331*KUMAR--"

Potřebuji funkci k extrahování pouze "N08745987123546"

Díky
Tento komentář byl moderátorem webu minimalizován
Dobrý den, chcete vytáhnout čísla po Ne a počet čísel je pevný? Pokud ano, můžete použít Kutools pro funkci Extrahovat text v Excelu, pro extrahování zadejte Ne???.
Tento komentář byl moderátorem webu minimalizován
První vzorec je zcela zbytečný a nesprávný, ale pro tento příklad funguje správně, protože první a druhé "c" spolu sousedí. Správný vzorec je:


Pro 2. výskyt -
= FIND ("c", A1, FIND ("c", A1) +1)

Pro třetí výskyt -
=FIND("c",A1,FIND("c",A1,FIND("c",A1)+1)+1) a tak dále...
Tento komentář byl moderátorem webu minimalizován
První vzorec funguje v mé verzi správně, v poznámce je vysvětleno, jak najít třetí nebo čtvrté nebo n-té "c".

Poznámka: 2 ve vzorci můžete změnit podle svých potřeb. Například, pokud chcete najít čtvrtou pozici "c", můžete změnit 2 na 3. A pokud chcete najít první pozici "c", měli byste změnit 2 na 0.
Tento komentář byl moderátorem webu minimalizován
Pokuste se zjistit polohu druhého c s první větou mého výše uvedeného komentáře jako řetězec pomocí prvního vzorce. Zjistíte, jak je to správné!
Tento komentář byl moderátorem webu minimalizován
Naprostý souhlas. +2, nebo +3 atd.....zcela závisí na vzdálenosti mezi n a (n+1) výskyty "c". Pokud byste se například pokoušeli tento vzorec zkopírovat do sloupce, museli byste ručně upravit pro každou buňku. V podstatě stejné jako ruční počítání.


Př. Zkusme najít 4. výskyt "c" v buňce A1 pomocí poskytnutého vzorce. Podle článku bychom měli použít +3 v naší vnořené funkci FIND k nalezení 4. výskytu.


Text v buňce A1:

"cab car abc cole cube"

Při ručním počítání je 4. výskyt "c" v cole na pozici znaku 13.


= FIND ("c", A1, FIND ("c", A1) +3)

Vnořená funkce FIND("c",A1) najde první výskyt "c" na pozici 1.

Proto,

NAJÍT("c",A1)+3 = 1+3 = 4

Když to zapojíme zpět do našeho vzorce,

=FIND("c",A1,FIND("c",A1)+3) = FIND("c",A1,1+3) = FIND("c",A1,4)

Tento nový vzorec bude hledat první výskyt "c" začínající od znakové pozice 4. 4. znak v řetězci je mezera hned za cab.

Proto vzorec najde "c" v autě a vrátí hodnotu 5 pro náš vzorec. Jak víme z ručního počítání, hledáme 13 jako výstup.
Tento komentář byl moderátorem webu minimalizován
„Nahradit“ vám umožňuje najít N-tý výskyt termínu, takže jej zkombinujte s „najít“ následovně (kde 5 = 5. výskyt):

= NAJÍT (CHAR (1), NÁHRADA (A1, "c", CHAR (1), 5))
Tento komentář byl moderátorem webu minimalizován
Toto je správná odpověď! prosím nahraďte celý tento článek tímto jedním řádkem kódu.....
Tento komentář byl moderátorem webu minimalizován
Vynikající! Jsem rád, že jsem po odeslání svého vlastního přešel nahoru a zkontroloval další komentáře.
Tento komentář byl moderátorem webu minimalizován
Chcete-li zvládnout výjimku vzorce, můžete použít stejné s if a iserro
=IF(ISERR(FIND("c",A1,FIND("c",A1)+2)),FIND("c",A1,FIND("c",A1)+0),FIND("c",A1,FIND("c",A1)+2))
Tento komentář byl moderátorem webu minimalizován
Najít vzorec1 je nedokonalé. Bude velkou pomocí, pokud se odstraní. Ztratil jsem spoustu času snahou o 4. výskyt "a" v "vedanarayanan" Díky.
Tento komentář byl moderátorem webu minimalizován
Váš vzorec pro nalezení N-tého výskytu znaku v řetězci nefunguje. Když použijeme váš příklad, přidání 2 k výsledkům vloženého hledání zajistí počáteční pozici pro počáteční nalezení pozice za 1. dvěma c, ale změna +2 na +3 nezíská pozici 4. „c“. jednoduše spustí hledání o jeden znak hlouběji do řetězce a výsledkem je stále 3. "c". Pro nalezení 4. "c" musí hledání začít za pozicí 3. "c". Těším se na vaše nové řešení.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Davide

Ano, jak jste řekl, první vzorec nefunguje správně, můžete použít druhý vzorec:
=FIND(CHAR(1),SUBSTITUTE(A2,"c",CHAR(1),2))

Poznámka: Číslo "2" ve vzorci znamená druhé "c", pokud chcete získat třetí, čtvrté "c", stačí změnit číslo 2 na 3,4, jak potřebujete.
Zkuste to prosím, doufám, že vám to pomůže!
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í

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL