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

Jak extrahovat první / poslední / n. Slovo z textového řetězce v aplikaci Excel?

Už jste někdy trpěli problémem, že potřebujete extrahovat určité slovo z textového řetězce v listu? Například máte následující rozsah textových řetězců potřebných k získání prvního / posledního nebo n-tého slova od nich, zde mohu mluvit o některých účinných způsobech, jak to vyřešit.


Extrahujte první slovo nebo příjmení z textového řetězce pomocí vzorců

Pokud potřebujete extrahovat první slovo ze seznamu textových řetězců, mohou vám pomoci následující vzorce.

Chcete-li extrahovat první slovo, zadejte níže uvedený vzorec do prázdné buňky a poté přetáhněte popisovač automatického vyplňování této buňky do požadovaného rozsahu.

= IF (ISERR (FIND ("", A2)), "", LEFT (A2, FIND ("", A2) -1))

Chcete-li extrahovat poslední slovo z každé buňky, použijte tento vzorec:

= IF (ISERR (FIND ("", A2)), "", RIGHT (A2, LEN (A2) -FIND ("*", SUBSTITUTE (A2, "", "*", LEN (A2) -LEN ( NÁHRADA (A2, "", ""))))))

A nyní uvidíte, že první nebo poslední slovo je extrahováno z každé buňky.

Poznámky: Ve výše uvedených vzorcích A2 označuje buňku, ze které extrahujete první nebo poslední slovo.

Je těžké zapamatovat si dlouhé komplikované vzorce? Úžasný nástroj vám pomůže extrahovat n-té slovo wpouze několika kliknutími!

Nad dlouhými vzorci lze extrahovat pouze první a poslední slovo, ale bude zbytečné extrahovat zadané n-té slovo, říká druhé slovo, šesté slovo atd. I když můžete vyřešit vzorce, které problém vyřeší, musí být vzorce příliš složité na to, aby se zapamatovalo a uplatnilo. Zde se doporučuje funkce Extrahování n-tého slova v buňce aplikace Kutools pro Excel a pomůže vám co nejjednodušší extrahovat n-té slovo!


Kutools pro Excel - Obsahuje více než 300 užitečných nástrojů pro Excel. Plná zkušební verze zdarma 30-den, není potřeba kreditní karta! Get It Now

Extrahujte n-tý slovo z textového řetězce pomocí funkce definované uživatelem

Pokud chcete z textového řetězce extrahovat druhé, třetí nebo jakékoli n-tý slovo, můžete vytvořit uživatelsky definovanou funkci, která se s ním vypořádá.

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

2, klikněte Vložit > Modula vložte následující kód do Modul okno.

Function FindWord(Source As String, Position As Integer)
'Update 20131202
Dim arr() As String
arr = VBA.Split(Source, " ")
xCount = UBound(arr)
If xCount < 1 Or (Position - 1) > xCount Or Position < 0 Then
    FindWord = ""
Else
    FindWord = arr(Position - 1)
End If
End Function

3. Pak uložte kód, v tomto příkladu dostanu třetí slovo z řetězce, takže zadejte tento vzorec = vyhledávací slovo (A2,3) do prázdné buňky B2 a poté přetáhněte popisovač automatického vyplňování této buňky do požadovaného rozsahu. Viz screenshot:

Poznámka: Ve výše uvedeném vzorci A2 je buňka, ze které chcete extrahovat slovo, číslo 3 označuje třetí slovo v řetězci, které budete extrahovat, a můžete je podle potřeby změnit.


Extrahujte každé slovo z textového řetězce a vypsejte je vodorovně nebo svisle

Tato metoda představí program Kutools pro Excel Rozdělit buňky nástroj pro extrahování každého slova z buněk textového řetězce a poté seznam extrahovaných slov vodorovně nebo svisle podle vaší potřeby.

Kutools pro Excel - Obsahuje více než 300 užitečných nástrojů pro Excel. Plná zkušební verze zdarma 30-den, není potřeba kreditní karta! Zkušební verze zdarma hned teď!

1. Vyberte buňky textového řetězce, ze kterých budete extrahovat jejich slova, a klikněte na Kutools > Sloučit a rozdělit > Rozdělit buňky.

2. V úvodním dialogovém okně Rozdělit buňky zadejte typ rozdělení v typ zkontrolujte část space možnost v Určete oddělovač a klepněte na tlačítko Ok knoflík. Viz screenshot:

3. Nyní určete cílový rozsah, do kterého budete mít extrahovaná slova, a klikněte na OK tlačítko

Pokud jste zkontrolovali Rozdělit na sloupce Možnost ve výše uvedeném dialogovém okně Rozdělit buňky je každé slovo extrahováno z každého textového řetězce a uvedeno vertikálně.

Pokud jste zkontrolovali Rozdělit do řádků Možnost ve výše uvedeném dialogovém okně Rozdělit buňky je každé slovo extrahováno z každého textového řetězce a uvedeno vodorovně.


Extrahujte n-té slovo z textového řetězce v aplikaci Excel pomocí úžasného nástroje

Pokud jste nainstalovali program Kutools pro Excel, můžete použít jeho Pomocníka vzorců> Extrahovat n-té slovo v buňce a rychle tak snadno extrahovat n-té slovo ze zadané buňky.

Kutools pro Excel - Obsahuje více než 300 užitečných nástrojů pro Excel. Plná zkušební verze zdarma 30-den, není potřeba kreditní karta! Zkušební verze zdarma hned teď!

1. Vyberte buňku, do které vložíte extrahované slovo, a klikněte Kutools > Pomocník vzorců > Pomocník vzorců pro povolení této funkce.

2. V dialogovém okně Pomocník vzorců postupujte takto:
(1) Vyberte položku text z Typ vzorce rozbalovací seznam;
(2) Kliknutím zvýrazněte Extrahujte n-té slovo v buňce v Vyberte vzorec seznam;
(3) V Buňka do pole zadejte buňku, ze které budete extrahovat slovo;
(4) v Nth do pole zadejte číslo.

3, Klepněte na tlačítko Ok knoflík. V případě potřeby přetáhněte rukojeť automatického vyplňování buňky vzorce a zkopírujte vzorec do dalších buněk.


Ukázka: rozbalte každé slovo z textového řetězce a vypsejte je vodorovně nebo svisle


Kutools pro Excel obsahuje více než 300 šikovných nástrojů pro Excel, které si můžete zdarma vyzkoušet bez omezení za 30 dní. Stáhněte si a vyzkoušejte zdarma hned!

Související články:


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 (38)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Ten vba kód je fantastický, díky moc.
Tento komentář byl moderátorem webu minimalizován
Tato uživatelsky definovaná funkce je úžasná! Díky moc za sdílení.
Tento komentář byl moderátorem webu minimalizován
Díky moc! Fungovalo dobře! :-)
Tento komentář byl moderátorem webu minimalizován
To bylo SUPER užitečné, zajímalo by mě, jestli někdo neví o seznamu ke stažení nebo kopírování a vkládání užitečných ručně vyrobených funkcí, jako je "FindWord", které bych mohl použít.
Tento komentář byl moderátorem webu minimalizován
Ahoj, jen mě zajímalo, co jiného bych mohl vložit do vzorce Visual Basic, který by dokázal extrahovat a čárky nebo pomlčky bezprostředně za daty.. pro např. Fortin-
Tento komentář byl moderátorem webu minimalizován
Ahoj, to je skvělé. Fungovalo to velmi dobře a snižuje naši námahu, což ušetří spoustu času při této operaci. Děkuji všem, kteří na tom pracovali a sdíleli...
Tento komentář byl moderátorem webu minimalizován
Dobrý. Toto fungovalo velmi dobře
Tento komentář byl moderátorem webu minimalizován
Dobrý den, opravdu to ušetří spoustu času. Díky za sdílení Může někdo také navrhnout, jak bychom mohli extrahovat slova pomocí vba obráceným způsobem, např. poslední slovo je 1, druhé zprava doleva je 2 a tak dále. To bude velmi oceněno.
Tento komentář byl moderátorem webu minimalizován
Toto nefunguje správně na zdrojovém řetězci složeném z jiných než slov (jako jsou názvy dodavatelů následované čísly dílů)
Tento komentář byl moderátorem webu minimalizován
jak můžeme změnit písma pro n-té slovo v buňce
Tento komentář byl moderátorem webu minimalizován
Vysoce ceněné. Hodně mi to pomohlo.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, děkujeme za váš kousek kódu. Inspirovalo mě to k tomu, abych se trochu rozšířil. Na dalších řádcích můžete vybrat: poslední slovo (0), předposlední (-1), předposlední (-2) atd. Bez ohledu na počet slov. Funkce FindWord(Source As String, Position As Integer) 'Update 20150504 Dim arr() As String arr = VBA.Split(Source, " ") xCount = UBound(arr) Vyberte případ pozice Case -xCount To 0 FindWord = arr(xCount + Pozice) Případ 1 To (xCount + 1) NajítSlovo = arr(Pozice - 1) Případ Jinak NajítSlovo = "" End Select End Function
Tento komentář byl moderátorem webu minimalizován
Ahoj, včera jen doplnění kódu. Tím se přidá další řádek pro úpravu nadbytečných mezer ve zdrojovém řetězci: arr = VBA.Split(WorksheetFunction.Trim(Source), " ") s pozdravem Allart
Tento komentář byl moderátorem webu minimalizován
Díky, Alane, to je skvělé, díky! :)
Tento komentář byl moderátorem webu minimalizován
MOC DĚKUJI!!
Tento komentář byl moderátorem webu minimalizován
Ahoj.. Díky za váš kód, mám seznam vět a jedna z nich má pouze 1 slovo a váš kód nefunguje, pokud má pouze 1 slovo.
Tento komentář byl moderátorem webu minimalizován
Nemohu získat kód pro první slovo, aby fungoval, pokud některé z mého seznamu obsahuje pouze jedno slovo v buňce. např. první slovo ---> první druhé ---> [null] poslední slovo ---> poslední
Tento komentář byl moderátorem webu minimalizován
Zkuste toto (viz moje odpověď výše): Funkce FindWord (Zdroj jako řetězec, Pozice jako celé číslo) ' získá 1., 2., poslední (0), sekundu předposlední (-2) atd., slovo z řetězce ' Aktualizace 20150505 Dim arr( ) As String arr = VBA.Split(WorksheetFunction.Trim(Source), " ") xCount = UBound(arr) Vyberte případ Pozice Case -xCount To 0 FindWord = arr(Position + xCount) Case 1 To xCount + 1 FindWord = arr (Pozice - 1) Case Else FindWord = "" End Select
Tento komentář byl moderátorem webu minimalizován
Ahoj geekové, mám takovou buňku: 1 ABCD; 2 DEDF; 1 DED#3d; 4 FDWDS; 1 ED A chtěl bych extrahovat znak po 1. Tak jsem chtěl mít výsledek jako níže: ABCD;DED#3d;ED
Tento komentář byl moderátorem webu minimalizován
Mám 64bitový Excel 2013 a chybí mi doplněk Morefunc. Na základě výše uvedeného kódu jsem přišel s touto náhradou za funkci WMID společnosti Morefunc. Byl bych vděčný, kdyby to mohl uklidit někdo zkušenější než já. Funkce WMid1(zdroj jako řetězec, volitelná pozice jako celé číslo, volitelný počet slov jako celé číslo, volitelný oddělovač jako řetězec) Dim arr() jako řetězec Dim xPočet jako celé číslo Dim wPočet jako celé číslo Dim wFirst jako celé číslo Dim wLast jako celé číslo Pokud pozice = 0 Potom pozice = 1 If WordCount = 0 Then WordCount = 1 If Separator = "" Then Separator = " " arr = VBA.Split(Trim(Source), Separator) xCount = UBound(arr) + 1 If Position < 1 Then wFirst = Application. Max(xCount + Position - WordCount + 1, 0) wLast = xCount + Position Else wFirst = Position - 1 wLast = Application.Min(xCount - 1, Position + WordCount - 2) End If xCount < 2 Or Abs(Position) > xCount Then WMid1 = "" Else WMid1 = arr(wFirst) For wCount = wFirst + 1 To wLast WMid1 = WMid1 & Separator & arr(wCount) Next End If WMid1 = Trim(WMid1) End Function
Zatím zde nejsou žádné komentáře
Načíst další
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