Excel: Rozdelenie reťazca podľa oddeľovača alebo vzoru, oddelenie textu a čísel

  • Zdieľajte To
Michael Brown

V učebnici sa vysvetľuje, ako rozdeliť bunky v programe Excel pomocou vzorcov a funkcie Rozdeliť text. Dozviete sa, ako oddeliť text čiarkou, medzerou alebo iným oddeľovačom a ako rozdeliť reťazce na text a čísla. .

Rozdelenie textu z jednej bunky do viacerých buniek je úloha, ktorú raz za čas riešia všetci používatelia programu Excel. V jednom z našich predchádzajúcich článkov sme sa zaoberali rozdelením buniek v programe Excel pomocou Text do stĺpca funkcia a Blesková výplň . Dnes sa podrobne pozrieme na to, ako môžete rozdeliť reťazce pomocou vzorcov a Rozdelený text nástroj.

    Ako rozdeliť text v programe Excel pomocou vzorcov

    Na rozdelenie reťazca v programe Excel sa zvyčajne používa funkcia LEFT, RIGHT alebo MID v kombinácii s funkciou FIND alebo SEARCH. Na prvý pohľad môžu niektoré vzorce vyzerať zložito, ale logika je v skutočnosti pomerne jednoduchá a nasledujúce príklady vám poskytnú niekoľko nápoved.

    Rozdelenie reťazca čiarkou, bodkočiarkou, lomítkom, pomlčkou alebo iným oddeľovačom

    Pri delení buniek v programe Excel je kľúčové nájsť pozíciu oddeľovača v rámci textového reťazca. V závislosti od úlohy to môžete urobiť pomocou funkcie SEARCH (hľadanie bez rozlišovania veľkých a malých písmen) alebo FIND (hľadanie s rozlišovaním veľkých a malých písmen). Keď pozíciu oddeľovača poznáte, použite funkciu RIGHT (vpravo), LEFT (vľavo) alebo MID (v strede) na vyčlenenie príslušnej časti textového reťazca. Pre lepšie pochopenie si uveďme nasledujúce príkladypríklad.

    Predpokladajme, že máte zoznam SKU Položka-Farba-Veľkosť a chcete stĺpec rozdeliť na 3 samostatné stĺpce:

    1. Extrahovanie názov položky (všetky znaky pred 1. pomlčkou), vložte nasledujúci vzorec do B2 a potom ho skopírujte do stĺpca:

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

      V tomto vzorci funkcia SEARCH určuje pozíciu 1. pomlčky ("-") v reťazci a funkcia LEFT extrahuje všetky znaky, ktoré sa nachádzajú naľavo od nej (od pozície pomlčky sa odpočíta 1, pretože nechcete extrahovať samotnú pomlčku).

    2. Extrahovanie farba (všetky znaky medzi 1. a 2. pomlčkou), zadajte nasledujúci vzorec do bunky C2 a potom ho skopírujte do ďalších buniek:

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

      V tomto vzorci používame funkciu Excel MID na extrakciu textu z A2.

      Počiatočná pozícia a počet znakov, ktoré sa majú extrahovať, sa vypočítajú pomocou 4 rôznych funkcií SEARCH:

      • Počiatočné číslo je pozícia prvej pomlčky +1:

        SEARCH("-",A2) + 1

      • Počet znakov, ktoré sa majú extrahovať : rozdiel medzi pozíciou 2. pomlčky a 1. pomlčky mínus 1:

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

    3. Extrahovanie veľkosť (všetky znaky za 3. pomlčkou), zadajte nasledujúci vzorec v D2:

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

      V tomto vzorci funkcia LEN vráti celkovú dĺžku reťazca, od ktorej odpočítate pozíciu 2. pomlčky. Rozdiel je počet znakov za 2. pomlčkou a funkcia RIGHT ich extrahuje.

    Podobným spôsobom môžete stĺpec rozdeliť podľa ľubovoľného iného znaku. Stačí nahradiť znak "-" požadovaným oddeľovačom, napr. priestor (" "), čiarka (","), lomítko ("/"), hrubé črevo (";"), stredník (";") a podobne.

    Tip. Vo vyššie uvedených vzorcoch +1 a -1 zodpovedajú počtu znakov v oddeľovači. V tomto príklade je to pomlčka (1 znak). Ak váš oddeľovač pozostáva z 2 znakov, napr. z čiarky a medzery, potom do funkcie SEARCH zadajte iba čiarku (",") a namiesto +1 a -1 použite +2 a -2.

    Ako rozdeliť reťazec pomocou zalomenia riadku v programe Excel

    Ak chcete rozdeliť text medzerou, použite vzorce podobné tým, ktoré sme si ukázali v predchádzajúcom príklade. Jediný rozdiel je v tom, že na zadanie znaku zalomenia riadku budete potrebovať funkciu CHAR, pretože ju nemôžete zadať priamo do vzorca.

    Predpokladajme, že bunky, ktoré chcete rozdeliť, vyzerajú podobne:

    Vezmite vzorce z predchádzajúceho príkladu a nahraďte pomlčku ("-") symbolom CHAR(10), kde 10 je kód ASCII pre Line feed.

    • Extrahovanie názov položky :

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

    • Extrahovanie farba :

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

    • Ak chcete extrahovať veľkosť :

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

    Takto vyzerá výsledok:

    Ako rozdeliť text a čísla v programe Excel

    Na začiatok treba povedať, že neexistuje univerzálne riešenie, ktoré by fungovalo pre všetky alfanumerické reťazce. Ktorý vzorec použiť, závisí od konkrétneho vzoru reťazca. Nižšie nájdete vzorce pre dva bežné scenáre.

    Rozdelenie reťazca vzoru 'text + číslo'

    Predpokladajme, že máte stĺpec reťazcov s kombináciou textu a čísel, kde číslo vždy nasleduje za textom. Chcete rozdeliť pôvodné reťazce tak, aby sa text a čísla zobrazovali v samostatných bunkách, napríklad takto:

    Výsledok možno dosiahnuť dvoma rôznymi spôsobmi.

    Metóda 1: Spočítajte číslice a extrahujte toľko znakov

    Najjednoduchší spôsob rozdelenia textového reťazca, kde číslo nasleduje za textom, je tento:

    Na výpis čísel , vyhľadáte v reťazci všetky možné čísla od 0 do 9, získate ich celkový počet a vrátite toľko znakov od konca reťazca.

    S pôvodným reťazcom v A2 je vzorec nasledovný:

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

    Na výpis textu , vypočítate, koľko textových znakov reťazec obsahuje, tak, že od celkovej dĺžky pôvodného reťazca v A2 odpočítate počet vyňatých číslic (C2). Potom pomocou funkcie LEFT vrátite tento počet znakov zo začiatku reťazca.

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

    Kde A2 je pôvodný reťazec a C2 je extrahované číslo, ako je znázornené na obrázku:

    Metóda 2: Zistenie pozície 1. číslice v reťazci

    Alternatívnym riešením by bolo použitie nasledujúceho vzorca na určenie pozície prvej číslice v reťazci:

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

    Po zistení pozície prvej číslice môžete rozdeliť text a čísla pomocou veľmi jednoduchých vzorcov LEFT a RIGHT.

    Extrahovanie text :

    =ĽAVÝ(A2, B2-1)

    Extrahovanie číslo :

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

    Kde A2 je pôvodný reťazec a B2 je pozícia prvého čísla.

    Ak sa chcete zbaviť pomocného stĺpca, ktorý udržiava pozíciu prvej číslice, môžete vzorec MIN vložiť do funkcií LEFT a RIGHT:

    Vzorec na extrakciu text :

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

    Vzorec na extrakciu čísla :

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

    Rozdelenie reťazca vzoru 'číslo + text'

    Ak delíte bunky, v ktorých sa za číslom nachádza text, môžete výpis čísel s nasledujúcim vzorcom:

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

    Vzorec je podobný ako v predchádzajúcom príklade, len na získanie čísla z ľavej strany reťazca použijete funkciu LEFT namiesto RIGHT.

    Keď už máte čísla, výpis text odpočítaním počtu číslic od celkovej dĺžky pôvodného reťazca:

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

    Kde A2 je pôvodný reťazec a B2 je extrahované číslo, ako je znázornené na obrázku nižšie:

    Tip. Získanie čísla z ľubovoľná pozícia v textovom reťazci , použite tento vzorec alebo nástroj Výpis.

    Takto môžete v programe Excel rozdeliť reťazce pomocou rôznych kombinácií rôznych funkcií. Ako vidíte, vzorce nie sú zďaleka jasné, takže si môžete stiahnuť vzorový zošit programu Excel Rozdeliť bunky a bližšie ich preskúmať.

    Ak pre vás nie je obľúbenou činnosťou vysvetľovanie záhadných zákutí vzorcov programu Excel, možno sa vám bude páčiť vizuálna metóda delenia buniek v programe Excel, ktorá je demonštrovaná v ďalšej časti tohto návodu.

    Ako rozdeliť bunky v programe Excel pomocou nástroja Split Text

    Alternatívnym spôsobom rozdelenia stĺpca v programe Excel je použitie funkcie Rozdeliť text, ktorá je súčasťou nášho balíka Ultimate Suite pre program Excel a ktorá poskytuje nasledujúce možnosti:

      Aby bolo všetko jasnejšie, pozrime sa bližšie na jednotlivé možnosti, jednu po druhej.

      Rozdelenie buniek podľa znakov

      Túto možnosť vyberte vždy, keď chcete rozdeliť obsah bunky na každý výskyt zadaného znaku .

      V tomto príklade vezmeme reťazce Položka-Farba-Veľkosť Vzor, ktorý sme použili v prvej časti tohto návodu. Ako si možno pamätáte, rozdelili sme ich do 3 rôznych stĺpcov pomocou 3 rôznych vzorcov. A tu sa dozviete, ako môžete dosiahnuť rovnaký výsledok v 2 rýchlych krokoch:

      1. Za predpokladu, že máte nainštalovaný balík Ultimate Suite, vyberte bunky, ktoré chcete rozdeliť, a kliknite na tlačidlo Rozdelený text ikonu na Údaje Ablebits tab.

      2. Stránka Rozdelený text na pravej strane okna programu Excel sa otvorí podokno a vy vykonáte nasledujúce kroky:
        • Rozšíriť Rozdelenie podľa znakov a vyberte jeden z preddefinovaných oddeľovačov alebo zadajte akýkoľvek iný znak do Vlastné box.
        • Vyberte, či sa majú bunky rozdeliť na stĺpce alebo riadky.
        • Skontrolujte výsledok v časti Náhľad a kliknite na Split tlačidlo.

      Tip. Ak sa v bunke môže vyskytovať viacero po sebe nasledujúcich oddeľovacích znakov (napríklad viac ako jeden znak medzery), vyberte Zaobchádzať s po sebe idúcimi oddeľovačmi ako s jedným box.

      Hotovo! Úloha, ktorá vyžadovala 3 vzorce a 5 rôznych funkcií, teraz zaberie len pár sekúnd a jedno kliknutie na tlačidlo.

      Rozdelenie buniek podľa reťazca

      Táto možnosť umožňuje rozdeliť reťazce pomocou ľubovoľná kombinácia znakov reťazec rozdelíte na časti tak, že ako hranicu každej časti použijete jeden alebo niekoľko rôznych podreťazcov.

      Ak chcete napríklad rozdeliť vetu spojkami " a " a " alebo ", rozšíriť Rozdelenie podľa reťazcov a zadajte oddeľovacie reťazce, jeden na riadok:

      Výsledkom je, že zdrojová fráza je oddelená pri každom výskyte každého oddeľovača:

      Tip: Znaky "alebo" a "a" môžu byť často súčasťou slov ako "orange" alebo "Andalusia", preto nezabudnite napísať priestor pred a po a a alebo aby sa zabránilo deleniu slov.

      A tu je ďalší príklad z reálneho života. Predpokladajme, že ste z externého zdroja importovali stĺpec dátumov, ktoré vyzerajú takto:

      5.1.2016 12:20

      5.2.2016 14:50

      Tento formát nie je pre Excel bežný, a preto žiadna z funkcií Date nerozpozná žiadny z prvkov dátumu alebo času. Ak chcete rozdeliť deň, mesiac, rok, hodiny a minúty do samostatných buniek, zadajte do políčka Rozdelenie podľa reťazcov box:

      • Bodka (.) na oddelenie dňa, mesiaca a roka
      • Dvojbodka (:) na oddelenie hodín a minút
      • Medzera na oddelenie dátumu a času

      Stlačte tlačidlo Split a okamžite sa zobrazí výsledok:

      Rozdelenie buniek podľa masky (vzoru)

      Oddelenie bunky maskou znamená rozdelenie reťazca na základe vzoru .

      Táto možnosť sa veľmi hodí, keď potrebujete rozdeliť zoznam homogénnych reťazcov na niektoré prvky alebo podreťazce. Komplikácia spočíva v tom, že zdrojový text nemožno rozdeliť pri každom výskyte daného oddeľovača, ale len pri niektorých konkrétnych výskytoch. Nasledujúci príklad vám uľahčí pochopenie.

      Predpokladajme, že máte zoznam reťazcov extrahovaných z nejakého súboru protokolu:

      To, čo chcete, je mať dátum a čas, ak existuje, kód chyby a podrobnosti o výnimke v 3 samostatných stĺpcoch. Nemôžete použiť medzeru ako oddeľovač, pretože medzi dátumom a časom sú medzery, ktoré by sa mali zobraziť v jednom stĺpci, a v texte výnimky sú medzery, ktoré by sa tiež mali zobraziť v jednom stĺpci.

      Riešením je rozdelenie reťazca pomocou nasledujúcej masky: *ERROR:*Výnimka:*

      Kde hviezdička (*) predstavuje ľubovoľný počet znakov.

      Dvojbodky (:) sú zahrnuté do oddeľovačov, pretože nechceme, aby sa objavili vo výsledných bunkách.

      A teraz rozšírte Rozdelenie podľa masky sekcia na Rozdelený text zadajte masku do poľa Zadajte oddeľovače a kliknite na tlačidlo Split :

      Výsledok bude vyzerať podobne:

      Poznámka. Rozdelenie reťazca podľa masky je rozlišovanie veľkých a malých písmen . Preto dbajte na to, aby ste znaky v maske zadávali presne tak, ako sú uvedené v zdrojových reťazcoch.

      Veľkou výhodou tejto metódy je flexibilita. Ak napríklad všetky pôvodné reťazce obsahujú hodnoty dátumu a času a chcete ich zobraziť v rôznych stĺpcoch, použite túto masku:

      * *Výnimka:*

      Preložené do jednoduchej angličtiny, maska dáva prídavnému modulu pokyn rozdeliť pôvodné reťazce na 4 časti:

      • Všetky znaky pred 1. medzerou nájdené v reťazci (dátum)
      • Znaky medzi 1. medzerou a slovom CHYBA: (čas)
      • Text medzi CHYBA: a Výnimka: (kód chyby)
      • Všetko, čo nasleduje po Výnimka: (text výnimky)

      Dúfam, že sa vám tento rýchly a jednoduchý spôsob delenia reťazcov v programe Excel páčil. Ak ste zvedaví, či ho chcete vyskúšať, nižšie je k dispozícii na stiahnutie skúšobná verzia. Ďakujem vám za prečítanie a dúfam, že sa na našom blogu uvidíme budúci týždeň!

      Dostupné súbory na stiahnutie

      Vzorce rozdelenia buniek programu Excel (.xlsx súbor)

      14-dňová plne funkčná verzia balíka Ultimate Suite (.exe súbor)

      Michael Brown je nadšený technologický nadšenec s vášňou pre zjednodušovanie zložitých procesov pomocou softvérových nástrojov. S viac ako desaťročnými skúsenosťami v technologickom priemysle si zdokonalil svoje zručnosti v programoch Microsoft Excel a Outlook, ako aj Tabuľky Google a Dokumenty. Michaelov blog je venovaný zdieľaniu svojich vedomostí a odborných znalostí s ostatnými a poskytuje jednoduché tipy a návody na zlepšenie produktivity a efektivity. Či už ste skúsený profesionál alebo začiatočník, Michaelov blog ponúka cenné poznatky a praktické rady, ako z týchto základných softvérových nástrojov vyťažiť maximum.