Funkce TEXTSPLIT v aplikaci Excel: rozdělení textových řetězců podle oddělovače

  • Sdílet Toto
Michael Brown

Tento návod ukazuje, jak používat zcela novou funkci TEXTSPLIT k rozdělení řetězců v aplikaci Excel 365 podle zadaného oddělovače.

Mohou nastat různé situace, kdy potřebujete v Excelu rozdělit buňky. Již v dřívějších verzích jsme byli vybaveni řadou nástrojů, které tento úkol umožňovaly, například Text do sloupců a Vyplnit bleskově. Nyní k tomu máme také speciální funkci TEXTSPLIT, která dokáže rozdělit řetězec do více buněk napříč sloupci a/nebo řádky na základě zadaných parametrů.

    Funkce Excel TEXTSPLIT

    Funkce TEXTSPLIT v aplikaci Excel rozdělí textové řetězce podle zadaného oddělovače napříč sloupci a/nebo řádky. Výsledkem je dynamické pole, které se automaticky rozdělí do více buněk.

    Funkce přijímá až 6 argumentů, z nichž pouze první dva jsou povinné.

    TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])

    text (povinné) - text, který se má rozdělit. Lze zadat jako řetězec nebo odkaz na buňku.

    col_delimiter (povinné) - znak(y), který(é) označuje(jí), kde se má text rozdělit do sloupců. Pokud je vynechán, row_delimiter musí být definovány.

    row_delimiter (nepovinné) - znak(y), který(é) určuje(jí), kde se má text rozdělit na řádky.

    ignore_empty (nepovinné) - určuje, zda se mají prázdné hodnoty ignorovat, nebo ne:

    • FALSE (výchozí) - vytvoří prázdné buňky pro po sobě jdoucí oddělovače bez hodnoty mezi nimi.
    • TRUE - ignoruje prázdné hodnoty, tj. nevytváří prázdné buňky pro dva nebo více po sobě jdoucích oddělovačů.

    match_mode (nepovinné) - určuje citlivost na velká a malá písmena pro oddělovač. Ve výchozím nastavení povoleno.

    • 0 (výchozí) - rozlišuje velká a malá písmena
    • 1 - nerozlišuje velká a malá písmena

    pad_with (nepovinné) - hodnota, která se použije místo chybějících hodnot ve dvourozměrných polích. Výchozí je chyba #N/A.

    Například pro rozdělení textového řetězce v A2 do více buněk pomocí čárky a mezery jako oddělovače je vzorec následující:

    =TEXTSPLIT(A2, ", ")

    Dostupnost TEXTSPLIT

    Funkce TEXTSPLIT je k dispozici pouze v aplikaci Excel pro Microsoft 365 (Windows a Mac) a Excel pro web.

    Tipy:

    • Ve verzích aplikace Excel, kde není k dispozici funkce TEXTSPLIT (kromě aplikace Excel 365), můžete k rozdělení buněk použít průvodce Text do sloupců.
    • Pro opačnou úlohu, tj. pro spojení obsahu více buněk do jedné pomocí určitého oddělovače, je třeba použít funkci TEXTJOIN.

    Základní vzorec TEXTSPLIT pro rozdělení buňky v aplikaci Excel

    Pro začátek se podívejme, jak použít vzorec TEXTSPLIT v jeho nejjednodušší podobě k rozdělení textového řetězce podle určitého oddělovače.

    Rozdělení buňky vodorovně napříč sloupci

    Chcete-li obsah dané buňky rozdělit do více sloupců, zadejte odkaz na buňku obsahující původní řetězec pro první ( text ) a oddělovač, který označuje místo, kde má dojít k rozdělení druhého ( col_delimiter ).

    Například pro vodorovné oddělení řetězce v A2 čárkou je vzorec následující:

    =TEXTSPLIT(A2, ",")

    Jako oddělovač se používá čárka uzavřená do dvojitých uvozovek (",").

    Výsledkem je, že každá položka oddělená čárkou je v samostatném sloupci:

    Rozdělení buňky vertikálně napříč řádky

    Chcete-li rozdělit text na více řádků, použijte třetí argument ( row_delimiter ) je místo, kam se umístí oddělovač. Druhý argument ( col_delimiter ) se v tomto případě vynechává.

    Například pro rozdělení hodnot v A2 do různých řádků je vzorec následující:

    =TEXTSPLIT(A2, ,",")

    Všimněte si, že v obou případech je vzorec zadán pouze v jedné buňce (C2). V sousedních buňkách se vrácené hodnoty automaticky rozsypou. Výsledné pole (které se nazývá rozsypaný rozsah) je zvýrazněno modrým rámečkem, což znamená, že vše uvnitř je vypočteno podle vzorce v levé horní buňce.

    Rozdělení textu podle podřetězce

    V mnoha případech jsou hodnoty ve zdrojovém řetězci odděleny posloupností znaků, typickým příkladem je čárka a mezera. Pro tento případ použijte jako oddělovač podřetězec.

    Chcete-li například oddělit text v A2 do více sloupců čárkou a mezerou, použijte řetězec ", " pro. col_delimiter .

    =TEXTSPLIT(A2, ", ")

    Tento vzorec přejde do buňky B2 a pak jej zkopírujete dolů přes tolik buněk, kolik je potřeba.

    Rozdělení řetězce do sloupců a řádků najednou

    Chcete-li textový řetězec rozdělit na řádky a sloupce najednou, definujte ve vzorci TEXTSPLIT oba oddělovače.

    Například pro rozdělení textového řetězce v A2 napříč sloupci a řádky zadáme:

    • Znaménko rovnosti ("=") pro col_delimiter
    • Čárka a mezera (", ") pro row_delimiter

    Úplný vzorec má tento tvar:

    =TEXTSPLIT(A2, "=", ", ")

    Výsledkem je 2-D pole sestávající ze 2 sloupců a 3 řádků:

    Oddělit buňky více oddělovači

    Chcete-li ve zdrojovém řetězci zpracovat více nebo nekonzistentních oddělovačů, použijte pro argument oddělovače konstantu pole, například {"x", "y", "z"}.

    Na obrázku níže je text v A2 ohraničen čárkami (",") i středníky (";") s mezerami i bez nich. Pro vertikální rozdělení řetězce do řádků podle všech 4 variant ohraničení je vzorec následující:

    =TEXTSPLIT(A2, , {",",", ",";",";"})

    Nebo můžete do pole vložit pouze čárku (",") a středník (";") a poté odstranit přebytečné mezery pomocí funkce TRIM:

    =TRIM(TEXTSPLIT(A2, , {",",";"}))

    Rozdělení textu bez ohledu na prázdné hodnoty

    Pokud řetězec obsahuje dva nebo více po sobě jdoucích oddělovačů bez hodnoty mezi nimi, můžete se rozhodnout, zda tyto prázdné hodnoty ignorovat, nebo ne. ignore_empty který je ve výchozím nastavení nastaven na hodnotu FALSE.

    Ve výchozím nastavení funkce TEXTSPLIT neignoruje prázdné hodnoty. Výchozí chování funguje dobře pro strukturovaná data, jako v následujícím příkladu.

    V této ukázkové tabulce chybí v některých řetězcích skóre. Vzorec TEXTSPLIT s. ignore_empty vynechání argumentu nebo jeho nastavení na FALSE tento případ dokonale řeší a pro každou prázdnou hodnotu vytvoří prázdnou buňku.

    =TEXTSPLIT(A2, ", ")

    Nebo

    =TEXTSPLIT(A2, ", ", FALSE)

    Výsledkem je, že se všechny hodnoty zobrazí v příslušných sloupcích.

    V případě, že řetězce obsahují homogenní data, je vhodné ignorovat prázdné hodnoty. ignore_empty na hodnotu TRUE nebo 1.

    Například pro dělení t níže uvedených řetězců, kdy je každá dovednost umístěna v samostatné buňce bez mezer, je vzorec následující:

    =TEXTSPLIT(A2, ", ", ,TRUE)

    V tomto případě jsou chybějící hodnoty mezi po sobě jdoucími oddělovači zcela ignorovány:

    Dělení buněk podle velikosti písmen nebo bez rozlišení velikosti písmen

    Chcete-li kontrolovat citlivost oddělovače na velikost písmen, použijte pátý argument, match_mode .

    Ve výchozím nastavení, match_mode je nastavena na 0, čímž se TEXTSPLIT rozlišování velkých a malých písmen .

    V tomto příkladu jsou čísla oddělena malými písmeny "x" a velkými písmeny "X".

    Vzorec s výchozí citlivostí na velká a malá písmena akceptuje jako oddělovač pouze malé písmeno "x":

    =TEXTSPLIT(A2, " x ")

    Dbejte prosím na to, aby oddělovač měl mezeru po obou stranách písmene " x ", aby se ve výsledcích neobjevily počáteční a koncové mezery.

    Chcete-li vypnout citlivost na velká a malá písmena, zadejte 1 pro. match_mode přinutit vzorec TEXTSPLIT, aby ignoroval velikost písmen:

    =TEXTSPLIT(A2, " x ", , ,1)

    Nyní jsou všechny řetězce správně rozděleny podle obou oddělovačů:

    Vyplnění chybějících hodnot v poli 2D

    Poslední argument funkce TEXTSPLIT, pad_with , se hodí v případě, že ve zdrojovém řetězci chybí jedna nebo více hodnot. Pokud je takový řetězec rozdělen do sloupců i řádků, Excel ve výchozím nastavení vrací místo chybějících hodnot chyby #N/A, aby nedošlo k narušení struktury dvourozměrného pole.

    V níže uvedeném řetězci není znak "=" ( col_delimiter ) za "Score". Aby byla zachována integrita výsledného pole, TEXTSPLIT vypíše #N/A vedle "Score".

    Aby byl výsledek uživatelsky přívětivější, můžete chybu #N/A nahradit libovolnou hodnotou. Jednoduše zadejte požadovanou hodnotu do pole pad_with argument.

    V našem případě to může být pomlčka ("-"):

    =TEXTSPLIT(A2, "=", ", ", , ,"-")

    Nebo prázdný řetězec (""):

    =TEXTSPLIT(A2, "=", ", ", , ,"")

    Nyní, když jste se seznámili s praktickým využitím jednotlivých argumentů funkce TEXTSPLIT, probereme několik pokročilých příkladů, které vám pomohou vypořádat se s netriviálními problémy v tabulkách aplikace Excel.

    Rozdělení dat na den, měsíc a rok

    Chcete-li datum rozdělit na jednotlivé jednotky, musíte nejprve datum převést na text, protože funkce TEXTSPLIT pracuje s textovými řetězci, zatímco data v aplikaci Excel jsou čísla.

    Nejjednodušší způsob, jak převést číselnou hodnotu na text, je použít funkci TEXT. Jen nezapomeňte zadat vhodný formátovací kód pro datum.

    V našem případě je vzorec následující:

    =TEXT(A2, "m/d/rrrr")

    Dalším krokem je vnoření výše uvedené funkce do 1. argumentu TEXTSPLIT a zadání odpovídajícího oddělovače pro 2. nebo 3. argument, podle toho, zda rozdělujete přes sloupce nebo řádky. V tomto příkladu jsou jednotky data odděleny lomítky, takže pro oddělovač použijeme "/". col_delimiter argument:

    =TEXTSPLIT(TEXT(A2, "m/d/rrrr"), "/")

    Rozdělení buněk a odstranění určitých znaků

    Představte si následující situaci: rozdělili jste dlouhý řetězec na části, ale výsledné pole stále obsahuje některé nežádoucí znaky, jako jsou závorky na obrázku níže:

    =TEXTSPLIT(A2, " ", "; ")

    Chcete-li odstranit úvodní a závěrečné závorky najednou, vnořte dvě funkce SUBSTITUTE jednu do druhé (každá nahradí jednu závorku prázdným řetězcem) a použijte vzorec TEXTSPLIT pro funkci SUBSTITUTE. text argumentu vnitřního SUBSTITUTE:

    =SUBSTITUTE(SUBSTITUTE(TEXTSPLIT(A2, " ", "; "), "(", ""), ")", "")

    Tip: Pokud výsledné pole obsahuje příliš mnoho dalších znaků, můžete je vyčistit pomocí jedné z metod popsaných v tomto článku: Jak odstranit nežádoucí znaky v aplikaci Excel.

    Rozdělení řetězců s vynecháním určitých hodnot

    Předpokládejme, že chcete rozdělit níže uvedené řetězce do 4 sloupců: Křestní jméno , Příjmení , Skóre a Výsledek . Problém je v tom, že některé řetězce obsahují titul "pan" nebo "paní", kvůli čemuž jsou všechny výsledky chybné:

    Řešení není zřejmé, ale je poměrně jednoduché :)

    Kromě stávajících oddělovačů, kterými jsou mezera (" ") a čárka a mezera (", "), zahrnete řetězce "pan " a "paní " do pole col_delimiter pole konstantní, takže funkce použije samotné nadpisy k oddělení textu. Chcete-li ignorovat prázdné hodnoty, nastavte hodnotu ignore_empty na hodnotu TRUE.

    =TEXTSPLIT(A2, {" ",", ", "Pan ", "Paní"}, ,TRUE)

    Nyní jsou výsledky naprosto dokonalé!

    Alternativy TEXTSPLIT

    Ve verzích aplikace Excel, kde není podporována funkce TEXTSPLIT, můžete řetězce rozdělit pomocí různých kombinací funkce HLEDAT / NAJÍT s funkcemi LEFT, RIGHT a MID. Zejména:

    • Vyhledávání bez rozlišení velkých a malých písmen nebo vyhledávání s rozlišením velkých a malých písmen určuje pozici oddělovače v řetězci a
    • Funkce LEFT, RIGHT a MID extrahují podřetězec před, za nebo mezi dvěma výskyty oddělovače.

    V našem případě rozdělit hodnoty oddělené znakem čárka a mezera , vzorce jsou následující.

    Výpis názvu:

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

    Vytáhnout skóre:

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

    Jak získat výsledek:

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

    Podrobné vysvětlení logiky vzorců naleznete v části Jak rozdělit řetězce podle znaku nebo masky.

    Mějte na paměti, že na rozdíl od funkce dynamického pole TEXTSPLIT se tyto vzorce řídí tradičním přístupem jeden vzorec - jedna buňka. Vzorec zadáte do první buňky a poté jej přetáhnete dolů po sloupci, abyste jej zkopírovali do následujících buněk.

    Níže uvedený snímek obrazovky ukazuje výsledky:

    To je návod, jak rozdělit buňky v Excelu 365 pomocí TEXTSPLIT nebo alternativních řešení ve starších verzích. Děkuji vám za přečtení a doufám, že se uvidíme na našem blogu příští týden!

    Cvičebnice ke stažení

    Funkce TEXTSPLIT pro rozdělení řetězců - příklady vzorců (.xlsx 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.