Obsah
Tento návod ukazuje, ako používať úplne novú funkciu TEXTSPLIT na rozdelenie reťazcov v programe Excel 365 podľa ľubovoľného oddeľovača, ktorý zadáte.
Môžu nastať rôzne situácie, keď potrebujete v programe Excel rozdeliť bunky. Už v predchádzajúcich verziách sme boli vybavení viacerými nástrojmi na splnenie tejto úlohy, napríklad Text do stĺpcov a Vyplniť blesk. Teraz máme na tento účel aj špeciálnu funkciu TEXTSPLIT, ktorá dokáže rozdeliť reťazec do viacerých buniek v stĺpcoch a/alebo riadkoch na základe zadaných parametrov.
Funkcia Excel TEXTSPLIT
Funkcia TEXTSPLIT v programe Excel rozdelí textové reťazce podľa zadaného oddeľovača v stĺpcoch a/alebo riadkoch. Výsledkom je dynamické pole, ktoré sa automaticky rozleje do viacerých buniek.
Funkcia prijíma až 6 argumentov, z ktorých sú povinné len prvé dva.
TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])text (povinné) - text, ktorý sa má rozdeliť. Môže byť zadaný ako reťazec alebo odkaz na bunku.
col_delimiter (povinné) - znak(-y), ktorý(-é) označuje(-jú), kde sa má text rozdeliť do stĺpcov, row_delimiter musia byť definované.
row_delimiter (nepovinné) - znak(y), ktorý(é) označuje(ú), kde sa má text rozdeliť na riadky.
ignore_empty (nepovinné) - určuje, či sa majú prázdne hodnoty ignorovať alebo nie:
- FALSE (predvolené) - vytvorí prázdne bunky pre po sebe idúce oddeľovače bez hodnoty medzi nimi.
- TRUE - ignoruje prázdne hodnoty, t. j. nevytvára prázdne bunky pre dva alebo viac po sebe nasledujúcich oddeľovačov.
match_mode (nepovinné) - určuje citlivosť na veľkosť písmen pre oddeľovač. Predvolene zapnuté.
- 0 (predvolené) - rozlišovanie veľkých a malých písmen
- 1 - nerozlišuje veľké a malé písmená
pad_with (nepovinné) - hodnota, ktorá sa použije namiesto chýbajúcich hodnôt v dvojrozmerných poliach. Predvolené nastavenie je chyba #N/A.
Ak chcete napríklad rozdeliť textový reťazec v A2 do viacerých buniek pomocou čiarky a medzery ako oddeľovača, vzorec je:
=TEXTSPLIT(A2, ", ")
Dostupnosť TEXTSPLIT
Funkcia TEXTSPLIT je k dispozícii len v aplikácii Excel pre Microsoft 365 (Windows a Mac) a Excel pre web.
Tipy:
- Vo verziách Excelu, v ktorých nie je k dispozícii funkcia TEXTSPLIT (okrem Excelu 365), môžete na rozdelenie buniek použiť sprievodcu Text do stĺpcov.
- Ak chcete vykonať opačnú úlohu, t. j. spojiť obsah viacerých buniek do jednej pomocou určitého oddeľovača, použite funkciu TEXTJOIN.
Základný vzorec TEXTSPLIT na rozdelenie bunky v programe Excel
Na začiatok sa pozrime, ako použiť vzorec TEXTSPLIT v jeho najjednoduchšej podobe na rozdelenie textového reťazca podľa určitého oddeľovača.
Rozdelenie bunky horizontálne cez stĺpce
Ak chcete obsah danej bunky rozdeliť do viacerých stĺpcov, zadajte odkaz na bunku obsahujúcu pôvodný reťazec pre prvý ( text ) a oddeľovač, ktorý označuje miesto, kde má dôjsť k rozdeleniu druhého ( col_delimiter ) argument.
Napríklad, ak chcete reťazec v A2 horizontálne oddeliť čiarkou, vzorec je:
=TEXTSPLIT(A2, ",")
Ako oddeľovač sa používa čiarka uzavretá v dvojitých úvodzovkách (",").
Výsledkom je, že každá položka oddelená čiarkou je v samostatnom stĺpci:
Rozdelenie bunky vertikálne cez riadky
Ak chcete rozdeliť text na viac riadkov, tretí argument ( row_delimiter ) je miesto, kam umiestnite oddeľovač. Druhý argument ( col_delimiter ) sa v tomto prípade vynecháva.
Napríklad na rozdelenie hodnôt v A2 do rôznych riadkov sa použije vzorec:
=TEXTSPLIT(A2, ,",")
Všimnite si, že v oboch prípadoch sa vzorec zadáva len do jednej bunky (C2). V susedných bunkách sa vrátené hodnoty automaticky rozsypú. Výsledné pole (ktoré sa nazýva rozsypaný rozsah) je zvýraznené modrým okrajom, čo znamená, že všetko, čo sa v ňom nachádza, je vypočítané podľa vzorca v ľavej hornej bunke.
Rozdelenie textu podľa podreťazca
V mnohých prípadoch sú hodnoty v zdrojovom reťazci oddelené postupnosťou znakov, typickým príkladom je čiarka a medzera. Ak chcete riešiť tento scenár, použite ako oddeľovač podreťazec.
Ak chcete napríklad oddeliť text v A2 do viacerých stĺpcov čiarkou a medzerou, použite reťazec ", " pre col_delimiter .
=TEXTSPLIT(A2, ", ")
Tento vzorec sa prenesie do bunky B2 a potom ho skopírujete do toľkých buniek, koľko potrebujete.
Rozdelenie reťazca do stĺpcov a riadkov naraz
Ak chcete rozdeliť textový reťazec na riadky a stĺpce naraz, definujte oba oddeľovače vo vzorci TEXTSPLIT.
Ak chcete napríklad rozdeliť textový reťazec v A2 na stĺpce a riadky, zadajte:
- Znak rovnosti ("=") pre col_delimiter
- Čiarka a medzera (", ") pre row_delimiter
Úplný vzorec má tento tvar:
=TEXTSPLIT(A2, "=", ", ")
Výsledkom je 2-D pole pozostávajúce z 2 stĺpcov a 3 riadkov:
Oddeľte bunky viacerými oddeľovačmi
Ak chcete spracovať viacero alebo nekonzistentné oddeľovače v zdrojovom reťazci, použite pre argument oddeľovača konštantu poľa, napríklad {"x", "y", "z"}.
Na obrázku nižšie je text v A2 ohraničený čiarkami (",") aj stredníkmi (";") s medzerami aj bez nich. Vzorec na vertikálne rozdelenie reťazca do riadkov podľa všetkých 4 variantov ohraničenia je nasledovný:
=TEXTSPLIT(A2, , {",",", ",";",";"})
Alebo môžete do poľa zahrnúť iba čiarku (",") a stredník (";") a potom odstrániť dodatočné medzery pomocou funkcie TRIM:
=TRIM(TEXTSPLIT(A2, , {",",";"})
Rozdelenie textu s ignorovaním prázdnych hodnôt
Ak reťazec obsahuje dva alebo viac po sebe idúcich oddeľovačov bez hodnoty medzi nimi, môžete si vybrať, či sa takéto prázdne hodnoty majú alebo nemajú ignorovať. ignore_empty parameter, ktorého predvolená hodnota je FALSE.
V predvolenom nastavení funkcia TEXTSPLIT neignoruje prázdne hodnoty. Predvolené správanie funguje dobre pre štruktúrované údaje ako v nasledujúcom príklade.
V tejto vzorovej tabuľke chýbajú v niektorých reťazcoch skóre. Vzorec TEXTSPLIT s ignore_empty argument vynechaný alebo nastavený na FALSE tento prípad dokonale rieši, pričom pre každú prázdnu hodnotu vytvorí prázdnu bunku.
=TEXTSPLIT(A2, ", ")
Alebo
=TEXTSPLIT(A2, ", ", FALSE)
Výsledkom je, že všetky hodnoty sa zobrazia v príslušných stĺpcoch.
V prípade, že reťazce obsahujú homogénne údaje, je vhodné ignorovať prázdne hodnoty. ignore_empty na hodnotu TRUE alebo 1.
Ak chcete napríklad rozdeliť t nižšie uvedených reťazcov a umiestniť každú zručnosť do samostatnej bunky bez medzier, vzorec je:
=TEXTSPLIT(A2, ", ", ,TRUE)
V tomto prípade sa chýbajúce hodnoty medzi po sebe nasledujúcimi oddeľovačmi úplne ignorujú:
Rozdelenie buniek podľa veľkosti písmen alebo bez nich
Ak chcete kontrolovať citlivosť oddeľovača na veľkosť písmen, použite piaty argument, match_mode .
V predvolenom nastavení, match_mode je nastavená na 0, čím sa TEXTSPLIT rozlišovanie veľkých a malých písmen .
V tomto príklade sú čísla oddelené malými písmenami "x" a veľkými písmenami "X".
Vzorec s predvolenou citlivosťou na veľké a malé písmená akceptuje ako oddeľovač len malé písmeno "x":
=TEXTSPLIT(A2, " x ")
Dbajte na to, aby oddeľovač mal medzeru na oboch stranách písmena " x ", aby sa vo výsledkoch predišlo vzniku úvodných a koncovým medzerám.
Ak chcete vypnúť citlivosť na veľké a malé písmená, zadajte 1 pre match_mode prinútiť vzorec TEXTSPLIT, aby ignoroval veľkosť písmen:
=TEXTSPLIT(A2, " x ", , ,1)
Teraz sú všetky reťazce správne rozdelené podľa oboch oddeľovačov:
Vyplnenie chýbajúcich hodnôt v 2D poli
Posledný argument funkcie TEXTSPLIT, pad_with , sa hodí v prípade, že v zdrojovom reťazci chýba jedna alebo viacero hodnôt. Ak je takýto reťazec rozdelený na stĺpce aj riadky, Excel štandardne namiesto chýbajúcich hodnôt vráti chyby #N/A, aby sa nepokazila štruktúra dvojrozmerného poľa.
V nasledujúcom reťazci nie je znak "=" ( col_delimiter ) za "Score". Aby sa zachovala integrita výsledného poľa, TEXTSPLIT vypíše #N/A vedľa "Score".
Aby bol výsledok používateľsky prívetivejší, môžete chybu #N/A nahradiť ľubovoľnou hodnotou. Jednoducho zadajte požadovanú hodnotu do políčka pad_with argument.
V našom prípade to môže byť spojovník ("-"):
=TEXTSPLIT(A2, "=", ", ", , ,"-")
Alebo prázdny reťazec (""):
=TEXTSPLIT(A2, "=", ", ", , ,"")
Teraz, keď ste sa naučili praktické využitie jednotlivých argumentov funkcie TEXTSPLIT, poďme si prebrať niekoľko pokročilých príkladov, ktoré vám pomôžu vyrovnať sa s netriviálnymi problémami v tabuľkách Excelu.
Rozdelenie dátumov na deň, mesiac a rok
Ak chcete dátum rozdeliť na jednotlivé jednotky, musíte najprv previesť dátum na text, pretože funkcia TEXTSPLIT pracuje s textovými reťazcami, zatiaľ čo dátumy v programe Excel sú čísla.
Najjednoduchší spôsob, ako previesť číselnú hodnotu na text, je použiť funkciu TEXT. Len nezabudnite zadať vhodný kód formátu pre váš dátum.
V našom prípade je vzorec nasledovný:
=TEXT(A2, "m/d/rrrr")
Ďalším krokom je vložiť vyššie uvedenú funkciu do 1. argumentu TEXTSPLIT a zadať príslušný oddeľovač pre 2. alebo 3. argument, podľa toho, či delíte cez stĺpce alebo riadky. V tomto príklade sú dátumové jednotky ohraničené lomkami, takže použijeme "/" pre col_delimiter argument:
=TEXTSPLIT(TEXT(A2, "m/d/rrrr"), "/")
Rozdelenie buniek a odstránenie určitých znakov
Predstavte si to takto: rozdelili ste dlhý reťazec na časti, ale výsledné pole stále obsahuje niektoré nežiaduce znaky, ako napríklad zátvorky na obrázku nižšie:
=TEXTSPLIT(A2, " ", "; ")
Ak chcete odstrániť úvodné a koncové zátvorky naraz, vložte dve funkcie SUBSTITUTE jednu do druhej (každá nahradí jednu zátvorku prázdnym reťazcom) a použite vzorec TEXTSPLIT pre text argument vnútorného SUBSTITUTE:
=SUBSTITUTE(SUBSTITUTE(TEXTSPLIT(A2, " ", "; "), "(", ""), ")", "")
Tip. Ak výsledné pole obsahuje príliš veľa ďalších znakov, môžete ich vyčistiť pomocou jednej z metód opísaných v tomto článku: Ako odstrániť nežiaduce znaky v programe Excel.
Rozdelenie reťazcov s vynechaním určitých hodnôt
Predpokladajme, že chcete rozdeliť nižšie uvedené reťazce do 4 stĺpcov: Krstné meno , Priezvisko , Skóre a Výsledok Problémom je, že niektoré reťazce obsahujú titul "pán" alebo "pani", kvôli čomu sú všetky výsledky nesprávne:
Riešenie nie je zrejmé, ale je celkom jednoduché :)
Okrem existujúcich oddeľovacích znakov, ktorými sú medzera (" ") a čiarka a medzera (", "), zahrniete reťazce "pán " a "pani " do col_delimiter aby funkcia použila samotné názvy na oddelenie textu. Ak chcete ignorovať prázdne hodnoty, nastavte ignore_empty na TRUE.
=TEXTSPLIT(A2, {" ",", ", "Pán ", "Pani"}, ,TRUE)
Teraz sú výsledky úplne dokonalé!
Alternatívy k TEXTSPLIT
Vo verziách programu Excel, v ktorých nie je podporovaná funkcia TEXTSPLIT, môžete reťazce rozdeliť pomocou rôznych kombinácií funkcie VYHĽADÁVAŤ / VYHĽADÁVAŤ s funkciami LEFT, RIGHT a MID. Najmä:
- Vyhľadávanie bez rozlišovania veľkých a malých písmen alebo vyhľadávanie s rozlišovaním veľkých a malých písmen určuje pozíciu oddeľovača v reťazci a
- Funkcie LEFT, RIGHT a MID extrahujú podreťazec pred, za alebo medzi dvoma inštanciami oddeľovača.
V našom prípade na rozdelenie hodnôt oddelených čiarka a medzera , vzorce sú nasledovné.
Výber názvu:
=LEFT(A2, SEARCH(",", A2, 1) -1)
Vytiahnutie skóre:
=MID(A2, SEARCH(",", A2) + 2, SEARCH(",", A2, SEARCH(",",A2)+1) - SEARCH(",", A2) - 2)
Získanie výsledku:
=RIGHT(A2, LEN(A2) - SEARCH(",", A2, SEARCH(",", A2) + 1)-1)
Podrobné vysvetlenie logiky vzorcov nájdete v časti Ako rozdeliť reťazce podľa znaku alebo masky.
Majte na pamäti, že na rozdiel od funkcie dynamického poľa TEXTSPLIT sa tieto vzorce riadia tradičným prístupom jeden vzorec - jedna bunka. Vzorec zadáte do prvej bunky a potom ho potiahnete dole stĺpcom, aby ste ho skopírovali do nasledujúcich buniek.
Na nasledujúcom obrázku sú zobrazené výsledky:
To je spôsob, ako rozdeliť bunky v programe Excel 365 pomocou funkcie TEXTSPLIT alebo alternatívnych riešení v starších verziách. Ďakujem vám za prečítanie a dúfam, že sa uvidíme na našom blogu budúci týždeň!
Cvičebnica na stiahnutie
Funkcia TEXTSPLIT na rozdelenie reťazcov - príklady vzorcov (.xlsx súbor)