Excel: Rozdělení řetězce podle oddělovače nebo vzoru, oddělení textu a čísel

  • Sdílet Toto
Michael Brown

Výukový kurz vysvětluje, jak rozdělit buňky v aplikaci Excel pomocí vzorců a funkce Rozdělit text. Naučíte se, jak oddělit text čárkou, mezerou nebo jiným oddělovačem a jak rozdělit řetězce na text a čísla. .

Rozdělení textu z jedné buňky do více buněk je úkol, který jednou za čas řeší všichni uživatelé aplikace Excel. V jednom z našich dřívějších článků jsme se zabývali rozdělením buněk v aplikaci Excel pomocí příkazu Text do sloupce funkce a Blesková výplň . Dnes se podrobně podíváme na to, jak můžete rozdělit řetězce pomocí vzorců a příkazu Rozdělený text nástroj.

    Jak rozdělit text v aplikaci Excel pomocí vzorců

    K rozdělení řetězce v Excelu se obvykle používá funkce LEFT, RIGHT nebo MID v kombinaci s funkcí FIND nebo SEARCH. Na první pohled mohou některé vzorce vypadat složitě, ale logika je ve skutečnosti poměrně jednoduchá a následující příklady vám napoví.

    Rozdělení řetězce čárkou, středníkem, lomítkem, pomlčkou nebo jiným oddělovačem

    Při dělení buněk v aplikaci Excel je klíčové najít pozici oddělovače v textovém řetězci. V závislosti na vaší úloze to lze provést buď pomocí vyhledávání bez rozlišení velkých a malých písmen, nebo pomocí vyhledávání s rozlišením velkých a malých písmen. Jakmile znáte pozici oddělovače, použijte funkci RIGHT, LEFT nebo MID k vyjmutí odpovídající části textového řetězce. Pro lepší pochopení uvažujme následující příklady.příklad.

    Předpokládejme, že máte k dispozici seznam SKU produktu Položka-Barva-Velikost a chcete sloupec rozdělit na 3 samostatné sloupce:

    1. Chcete-li extrahovat název položky (všechny znaky před 1. pomlčkou), vložte do B2 následující vzorec a zkopírujte jej dolů do sloupce:

      =LEFT(A2, SEARCH("-",A2,1)-1)

      V tomto vzorci funkce SEARCH určí pozici 1. pomlčky ("-") v řetězci a funkce LEFT extrahuje všechny znaky nalevo od ní (od pozice pomlčky odečtete 1, protože nechcete extrahovat samotnou pomlčku).

    2. Extrahovat barva (všechny znaky mezi 1. a 2. pomlčkou), zadejte následující vzorec do buňky C2 a poté jej zkopírujte do dalších buněk:

      =MID(A2, SEARCH("-",A2) + 1, SEARCH("-",A2,SEARCH("-",A2)+1) - SEARCH("-",A2) - 1)

      V tomto vzorci používáme funkci MID aplikace Excel k extrakci textu z A2.

      Počáteční pozice a počet znaků, které mají být extrahovány, jsou vypočítány pomocí 4 různých funkcí SEARCH:

      • Počáteční číslo je pozice první pomlčky +1:

        SEARCH("-",A2) + 1

      • Počet znaků k extrakci : rozdíl mezi polohou 2. pomlčky a 1. pomlčky minus 1:

        SEARCH("-", A2, SEARCH("-",A2)+1) - SEARCH("-",A2) -1

    3. Chcete-li extrahovat velikost (všechny znaky za 3. pomlčkou), zadejte do pole D2 následující vzorec:

      =RIGHT(A2,LEN(A2) - SEARCH("-", A2, SEARCH("-", A2) + 1))

      V tomto vzorci funkce LEN vrací celkovou délku řetězce, od které odečtete pozici 2. pomlčky. Rozdíl je počet znaků za 2. pomlčkou a funkce RIGHT je extrahuje.

    Podobným způsobem můžete sloupec rozdělit podle jakéhokoli jiného znaku. Stačí jen nahradit znak "-" požadovaným oddělovačem, např. prostor (" "), čárka (","), slash ("/"), tlusté střevo (";"), středník (";") a tak dále.

    Tip: Ve výše uvedených vzorcích odpovídají +1 a -1 počtu znaků v oddělovači. V tomto příkladu je to pomlčka (1 znak). Pokud se váš oddělovač skládá ze 2 znaků, např. čárky a mezery, zadejte do funkce HLEDAT pouze čárku (",") a místo +1 a -1 použijte +2 a -2.

    Jak rozdělit řetězec pomocí zalomení řádku v aplikaci Excel

    Chcete-li rozdělit text mezerou, použijte vzorce podobné těm, které jsme si ukázali v předchozím příkladu. Jediný rozdíl je v tom, že k zadání znaku pro zalomení řádku budete potřebovat funkci CHAR, protože ji nemůžete zadat přímo do vzorce.

    Předpokládejme, že buňky, které chcete rozdělit, vypadají podobně:

    Vezměte vzorce z předchozího příkladu a nahraďte pomlčku ("-") znakem CHAR(10), kde 10 je kód ASCII pro řádkový posuv.

    • Extrahovat název položky :

      =LEFT(A2, SEARCH(CHAR(10),A2,1)-1)

    • Extrahovat barva :

      =MID(A2, SEARCH(CHAR(10),A2) + 1, SEARCH(CHAR(10),A2,SEARCH(CHAR(10),A2)+1) - SEARCH(CHAR(10),A2) - 1)

    • Chcete-li extrahovat velikost :

      =RIGHT(A2,LEN(A2) - SEARCH(CHAR(10), A2, SEARCH(CHAR(10), A2) + 1)))

    A takto vypadá výsledek:

    Jak rozdělit text a čísla v aplikaci Excel

    Pro začátek je třeba říci, že neexistuje univerzální řešení, které by fungovalo pro všechny alfanumerické řetězce. Který vzorec použít, závisí na konkrétním vzoru řetězce. Níže najdete vzorce pro dva běžné scénáře.

    Rozdělení řetězce vzoru 'text + číslo'

    Předpokládejme, že máte sloupec řetězců s kombinací textu a čísel, kde číslo vždy následuje za textem. Chcete původní řetězce rozdělit tak, aby se text a čísla zobrazovaly v samostatných buňkách, například takto:

    Výsledku lze dosáhnout dvěma různými způsoby.

    Metoda 1: Spočítejte číslice a vyjměte tolik znaků

    Nejjednodušší způsob rozdělení textového řetězce, kde číslo následuje za textem, je tento:

    Na výpis čísel , vyhledáte v řetězci všechna možná čísla od 0 do 9, získáte jejich celkový počet a vrátíte tolik znaků od konce řetězce.

    S původním řetězcem v A2 je vzorec následující:

    =RIGHT(A2,SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"},""))))

    Na výpis textu , vypočtete, kolik textových znaků řetězec obsahuje, tak, že od celkové délky původního řetězce v A2 odečtete počet vyjmutých číslic (C2). Poté pomocí funkce LEFT vrátíte tento počet znaků od začátku řetězce.

    =LEFT(A2,LEN(A2)-LEN(C2))

    Kde A2 je původní řetězec a C2 je extrahované číslo, jak je znázorněno na obrázku:

    Metoda 2: Zjištění pozice 1. číslice v řetězci

    Alternativním řešením by bylo použití následujícího vzorce pro určení pozice první číslice v řetězci:

    =MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))

    Po zjištění pozice první číslice můžete rozdělit text a čísla pomocí velmi jednoduchých vzorců LEFT a RIGHT.

    Extrakce text :

    =LEVÁ(A2, B2-1)

    Extrakce číslo :

    =RIGHT(A2, LEN(A2)-B2+1)

    Kde A2 je původní řetězec a B2 je pozice prvního čísla.

    Chcete-li se zbavit pomocného sloupce, který udržuje pozici první číslice, můžete vzorec MIN vložit do funkcí LEFT a RIGHT:

    Vzorec pro extrakci text :

    =LEFT(A2,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)

    Vzorec pro extrakci čísla :

    =RIGHT(A2,LEN(A2)-MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))+1)

    Rozdělení řetězce vzoru 'číslo + text'

    Pokud rozdělujete buňky, ve kterých se za číslem objevuje text, můžete. výpis čísel podle následujícího vzorce:

    =LEFT(A2, SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}, ""))))

    Vzorec je podobný tomu, který byl popsán v předchozím příkladu, s tím rozdílem, že pro získání čísla z levé strany řetězce použijete funkci LEFT místo RIGHT.

    Jakmile budete mít čísla, výpis text odečtením počtu číslic od celkové délky původního řetězce:

    =RIGHT(A2,LEN(A2)-LEN(B2))

    Kde A2 je původní řetězec a B2 je extrahované číslo, jak je znázorněno na obrázku níže:

    Tip. Získání čísla z libovolná pozice v textovém řetězci , použijte tento vzorec nebo nástroj Výpis.

    Takto můžete v aplikaci Excel rozdělit řetězce pomocí různých kombinací různých funkcí. Jak vidíte, vzorce nejsou zdaleka tak zřejmé, takže si můžete stáhnout ukázkový sešit aplikace Excel Rozdělit buňky a blíže si je prohlédnout.

    Pokud není luštění tajuplných zákrut vzorců aplikace Excel vaší oblíbenou činností, možná se vám bude líbit vizuální metoda rozdělení buněk v aplikaci Excel, kterou si ukážeme v další části tohoto návodu.

    Jak rozdělit buňky v aplikaci Excel pomocí nástroje Rozdělit text

    Alternativním způsobem rozdělení sloupce v aplikaci Excel je použití funkce Rozdělit text, která je součástí sady Ultimate Suite pro aplikaci Excel a která nabízí následující možnosti:

      Abychom si vše ujasnili, podívejme se na jednotlivé možnosti podrobněji, jednu po druhé.

      Rozdělení buněk podle znaků

      Tuto možnost zvolte vždy, když chcete rozdělit obsah buňky na. každý výskyt zadaného znaku .

      Pro tento příklad vezměme řetězce z řetězce Položka-Barva-Velikost vzor, který jsme použili v první části tohoto návodu. Jak si možná vzpomínáte, rozdělili jsme je do 3 různých sloupců pomocí 3 různých vzorců. A zde se dozvíte, jak můžete stejného výsledku dosáhnout ve 2 rychlých krocích:

      1. Za předpokladu, že máte nainstalovanou sadu Ultimate Suite, vyberte buňky, které chcete rozdělit, a klikněte na tlačítko . Rozdělený text na ikoně Data Ablebits tab.

      2. Na stránkách Rozdělený text na pravé straně okna aplikace Excel se otevře podokno a vy provedete následující kroky:
        • Rozšířit Rozdělení podle znaků a vyberte jeden z předdefinovaných oddělovačů nebo zadejte jakýkoli jiný znak do pole Vlastní box.
        • Vyberte, zda chcete buňky rozdělit do sloupců nebo řádků.
        • Zkontrolujte výsledek v části Náhled a klikněte na Split tlačítko.

      Tip. Pokud se v buňce může vyskytovat několik po sobě jdoucích oddělovačů (například více než jeden znak mezery), vyberte možnost S po sobě jdoucími oddělovači zacházet jako s jedním box.

      Úloha, která vyžadovala 3 vzorce a 5 různých funkcí, nyní zabere jen pár sekund a jedno kliknutí na tlačítko.

      Rozdělení buněk podle řetězce

      Tato možnost umožňuje rozdělit řetězce pomocí libovolná kombinace znaků Technicky řečeno, řetězec rozdělíte na části tak, že jako hranici každé části použijete jeden nebo několik různých podřetězců.

      Například pro rozdělení věty spojkami " a " a " nebo ", rozšířit Rozdělení podle řetězců a zadejte oddělovací řetězce, jeden na řádek:

      Výsledkem je, že zdrojová věta je oddělena při každém výskytu každého oddělovače:

      Tip: Znaky "nebo" a "a" mohou být často součástí slov, jako je "pomeranč" nebo "Andalusie", takže nezapomeňte napsat. prostor před a po a a nebo aby nedocházelo k rozdělování slov.

      A zde je další příklad z reálného života. Předpokládejme, že jste z externího zdroje importovali sloupec dat, který vypadá následovně:

      5.1.2016 12:20

      5.2.2016 14:50

      Tento formát není pro Excel obvyklý, a proto žádná z funkcí Date nerozpozná žádný z prvků data nebo času. Chcete-li rozdělit den, měsíc, rok, hodiny a minuty do samostatných buněk, zadejte do políčka Rozdělení podle řetězců box:

      • Tečka (.) pro oddělení dne, měsíce a roku
      • Dvojtečka (:) pro oddělení hodin a minut
      • Mezera pro oddělení data a času

      Stiskněte tlačítko Split a ihned se zobrazí výsledek:

      Rozdělení buněk podle masky (vzoru)

      Oddělení buňky maskou znamená rozdělení řetězce na základě vzoru .

      Tato možnost se velmi hodí, když potřebujete rozdělit seznam stejnorodých řetězců na nějaké prvky nebo podřetězce. Komplikace spočívá v tom, že zdrojový text nelze rozdělit při každém výskytu daného oddělovače, ale pouze při některých konkrétních výskytech. Následující příklad vám usnadní pochopení.

      Předpokládejme, že máte seznam řetězců extrahovaných z nějakého souboru protokolu:

      Chcete, aby datum a čas, pokud existují, kód chyby a podrobnosti o výjimce byly ve 3 samostatných sloupcích. Nemůžete použít mezeru jako oddělovač, protože mezi datem a časem jsou mezery, které by se měly zobrazit v jednom sloupci, a v textu výjimky jsou mezery, které by se měly také zobrazit v jednom sloupci.

      Řešením je rozdělení řetězce pomocí následující masky: *ERROR:*Výjimka:*

      Hvězdička (*) představuje libovolný počet znaků.

      Dvojtečky (:) jsou součástí oddělovačů, protože nechceme, aby se objevily ve výsledných buňkách.

      A nyní rozšiřte Rozdělení podle masky sekce na Rozdělený text zadejte masku do podokna Zadejte oddělovače a klikněte na tlačítko Split :

      Výsledek bude vypadat podobně:

      Poznámka: Rozdělení řetězce podle masky je rozlišování velkých a malých písmen . Proto dbejte na to, abyste znaky v masce zadávali přesně tak, jak jsou uvedeny ve zdrojových řetězcích.

      Velkou výhodou této metody je flexibilita. Pokud například všechny původní řetězce obsahují hodnoty data a času a chcete je zobrazit v různých sloupcích, použijte tuto masku:

      * *ERROR:*Exception:* (Výjimka)

      Přeloženo do češtiny, maska dává doplňku pokyn, aby původní řetězce rozdělil na 4 části:

      • Všechny znaky před 1. mezerou v řetězci (datum)
      • Znaky mezi 1. mezerou a slovem CHYBA: (čas)
      • Text mezi CHYBA: a Výjimka: (kód chyby)
      • Vše, co následuje po Výjimka: (text výjimky)

      Doufám, že se vám tento rychlý a jednoduchý způsob dělení řetězců v Excelu líbil. Pokud jste zvědaví, zda jej vyzkoušíte, níže je ke stažení zkušební verze. Děkuji vám za přečtení a doufám, že se příští týden uvidíme na našem blogu!

      Dostupné soubory ke stažení

      Vzorce pro rozdělení buněk aplikace Excel (.xlsx soubor)

      Ultimate Suite 14denní plně funkční verze (.exe soubor)

      Michael Brown je oddaný technologický nadšenec s vášní pro zjednodušování složitých procesů pomocí softwarových nástrojů. S více než desetiletými zkušenostmi v technologickém průmyslu zdokonalil své dovednosti v aplikacích Microsoft Excel a Outlook a také v Tabulkách a Dokumentech Google. Michaelův blog je věnován sdílení jeho znalostí a odborných znalostí s ostatními a poskytuje snadno pochopitelné tipy a návody pro zlepšení produktivity a efektivity. Ať už jste zkušený profesionál nebo začátečník, Michaelův blog nabízí cenné postřehy a praktické rady, jak tyto základní softwarové nástroje co nejlépe využít.