Excel: Divizarea șirului de caractere după delimitator sau model, separarea textului și a numerelor

  • Imparte Asta
Michael Brown

Tutorialul explică modul de divizare a celulelor în Excel folosind formule și funcția Split Text. Veți învăța cum să separați textul prin virgulă, spațiu sau orice alt delimitator și cum să împărțiți șirurile de caractere în text și numere. .

Împărțirea textului dintr-o celulă în mai multe celule este sarcina cu care toți utilizatorii Excel se confruntă din când în când. Într-unul dintre articolele noastre anterioare, am discutat despre cum să împărțim celulele în Excel folosind funcția Text în coloană caracteristică și Umplere flash Astăzi, vom examina în profunzime modul în care puteți diviza șiruri de caractere folosind formulele și funcția de divizare. Split Text instrument.

    Cum se împarte textul în Excel folosind formule

    Pentru a diviza șiruri de caractere în Excel, utilizați în general funcția LEFT, RIGHT sau MID în combinație cu FIND sau SEARCH. La prima vedere, unele formule pot părea complexe, dar logica este de fapt destul de simplă, iar exemplele următoare vă vor oferi câteva indicii.

    Divizarea șirului prin virgulă, punct și virgulă, bară oblică, liniuță sau alt delimitator

    Atunci când divizați celule în Excel, cheia este de a localiza poziția delimitatorului în cadrul șirului de text. În funcție de sarcina dvs., acest lucru poate fi realizat utilizând fie SEARCH, care nu ține cont de majuscule, fie FIND, care ține cont de majuscule. Odată ce aveți poziția delimitatorului, utilizați funcția RIGHT, LEFT sau MID pentru a extrage partea corespunzătoare din șirul de text. Pentru o mai bună înțelegere, să luăm în considerare următoareleexemplu.

    Să presupunem că aveți o listă de SKU-uri ale produsului Articol-Culoare-Mărime și doriți să împărțiți coloana în 3 coloane separate:

    1. Pentru a extrage numele articolului (toate caracterele înainte de prima cratimă), introduceți următoarea formulă în B2, apoi copiați-o în josul coloanei:

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

      În această formulă, SEARCH determină poziția primei cratime ("-") în șirul de caractere, iar funcția LEFT extrage toate caracterele din stânga acesteia (se scade 1 din poziția cratimei, deoarece nu se dorește extragerea cratimei în sine).

    2. Pentru a extrage culoare (toate caracterele dintre prima și a doua cratimă), introduceți următoarea formulă în C2, apoi copiați-o în alte celule:

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

      În această formulă, folosim funcția Excel MID pentru a extrage textul din A2.

      Poziția de pornire și numărul de caractere care trebuie extrase sunt calculate cu ajutorul a 4 funcții diferite de căutare:

      • Numărul de start este poziția primei cratime +1:

        SEARCH("-",A2) + 1

      • Numărul de caractere de extras : diferența dintre poziția celei de-a doua cratime și cea de-a prima cratimă, minus 1:

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

    3. Pentru a extrage dimensiune (toate caracterele după a treia cratimă), introduceți următoarea formulă în D2:

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

      În această formulă, funcția LEN returnează lungimea totală a șirului, din care se scade poziția celei de-a doua cratime. Diferența este numărul de caractere după a doua cratimă, iar funcția RIGHT le extrage.

    În mod similar, puteți diviza coloana prin orice alt caracter. Tot ce trebuie să faceți este să înlocuiți "-" cu delimitatorul necesar, de exemplu spațiu (" "), virgulă (","), slash ("/"), colon (";"), punct și virgulă (";"), și așa mai departe.

    Sfat: În formulele de mai sus, +1 și -1 corespund numărului de caractere din delimitator. În acest exemplu, este vorba de o cratimă (1 caracter). Dacă delimitatorul dvs. este format din 2 caractere, de exemplu o virgulă și un spațiu, atunci furnizați doar virgula (",") funcției SEARCH și utilizați +2 și -2 în loc de +1 și -1.

    Cum se împarte șirul de caractere prin pauză de linie în Excel

    Pentru a diviza textul prin spațiu, utilizați formule similare celor demonstrate în exemplul anterior. Singura diferență este că veți avea nevoie de funcția CHAR pentru a furniza caracterul de întrerupere a liniei, deoarece nu îl puteți tasta direct în formulă.

    Să presupunem că celulele pe care doriți să le împărțiți sunt asemănătoare cu acestea:

    Luați formulele din exemplul anterior și înlocuiți o cratimă ("-") cu CHAR(10), unde 10 este codul ASCII pentru Line feed.

    • Pentru a extrage numele articolului :

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

    • Pentru a extrage culoare :

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

    • Pentru a extrage dimensiune :

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

    Și iată cum arată rezultatul:

    Cum se împarte textul și numerele în Excel

    Pentru început, nu există o soluție universală care să funcționeze pentru toate șirurile alfanumerice. Formula care trebuie folosită depinde de modelul particular al șirului. Mai jos veți găsi formulele pentru cele două scenarii comune.

    Șirul de divizare a modelului "text + număr

    Să presupunem că aveți o coloană de șiruri de caractere cu text și numere combinate, în care un număr urmează întotdeauna după text. Doriți să rupeți șirurile originale astfel încât textul și numerele să apară în celule separate, în felul următor:

    Rezultatul poate fi obținut în două moduri diferite.

    Metoda 1: Numărați cifrele și extrageți atâtea caractere

    Cel mai simplu mod de a împărți un șir de text în care numărul vine după text este acesta:

    La numere de extras , căutați în șirul de caractere pentru fiecare număr posibil de la 0 la 9, obțineți totalul numerelor și returnați atâtea caractere de la sfârșitul șirului.

    Cu șirul original în A2, formula este următoarea:

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

    La extrage textul , calculați câte caractere text conține șirul scăzând numărul de cifre extrase (C2) din lungimea totală a șirului original în A2. După aceea, utilizați funcția LEFT pentru a returna numărul de caractere de la începutul șirului.

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

    Unde A2 este șirul original, iar C2 este numărul extras, după cum se arată în captura de ecran:

    Metoda 2: Aflați poziția primei cifre dintr-un șir de caractere

    O soluție alternativă ar fi utilizarea următoarei formule pentru a determina poziția primei cifre din șir:

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

    Odată găsită poziția primei cifre, puteți împărți textul și numerele folosind formule foarte simple LEFT și RIGHT.

    Pentru a extrage text :

    =LEFT(A2, B2-1)

    Pentru a extrage număr :

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

    Unde A2 este șirul original, iar B2 este poziția primului număr.

    Pentru a scăpa de coloana ajutătoare care conține poziția primei cifre, puteți încorpora formula MIN în funcțiile LEFT și RIGHT:

    Formula de extragere text :

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

    Formula de extragere numere :

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

    Șirul de divizare a modelului "număr + text

    Dacă împărțiți celule în care textul apare după număr, puteți numere de extras cu următoarea formulă:

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

    Formula este similară cu cea discutată în exemplul anterior, cu excepția faptului că se utilizează funcția LEFT în loc de RIGHT pentru a obține numărul din partea stângă a șirului.

    Odată ce aveți cifrele, extras text prin scăderea numărului de cifre din lungimea totală a șirului original:

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

    Unde A2 este șirul original, iar B2 este numărul extras, așa cum se arată în imaginea de mai jos:

    Sfat. Pentru a obține numărul de la orice poziție în șirul de text , utilizați fie această formulă, fie instrumentul Extract.

    Iată cum puteți diviza șiruri de caractere în Excel folosind diferite combinații de funcții diferite. După cum vedeți, formulele sunt departe de a fi evidente, așa că este posibil să doriți să descărcați exemplul de registru de lucru Excel Split Cells pentru a le examina mai îndeaproape.

    Dacă nu vă place să vă dați seama de întorsăturile arcane ale formulelor Excel, s-ar putea să vă placă metoda vizuală de divizare a celulelor în Excel, care este demonstrată în următoarea parte a acestui tutorial.

    Cum să împărțiți celulele în Excel cu instrumentul Split Text

    O modalitate alternativă de a diviza o coloană în Excel este utilizarea funcției Split Text inclusă în suita Ultimate Suite for Excel, care oferă următoarele opțiuni:

      Pentru ca lucrurile să fie mai clare, să analizăm mai îndeaproape fiecare opțiune, pe rând.

      Împărțirea celulelor după caracter

      Alegeți această opțiune ori de câte ori doriți să divizați conținutul celulei la fiecare apariție a caracterului specificat .

      Pentru acest exemplu, să luăm șirurile de caractere din Articol-Culoare-Mărime pe care l-am folosit în prima parte a acestui tutorial. După cum vă amintiți, le-am separat în 3 coloane diferite folosind 3 formule diferite. Iată cum puteți obține același rezultat în 2 pași rapizi:

      1. Presupunând că aveți instalat Ultimate Suite, selectați celulele de divizat și faceți clic pe butonul Split Text de pe pictograma Date Ablebits tab.

      2. The Split Text se va deschide în partea dreaptă a ferestrei Excel, iar tu vei face următoarele:
        • Extindeți Împărțit după caracter și selectați unul dintre delimitatorii predefiniți sau introduceți orice alt caracter în câmpul Personalizat cutie.
        • Alegeți dacă doriți să împărțiți celulele în coloane sau rânduri.
        • Examinați rezultatul sub Previzualizare și faceți clic pe butonul Split buton.

      Sfat. Dacă într-o celulă pot exista mai mulți delimitatori succesivi (de exemplu, mai mult de un caracter spațiu), selectați opțiunea Tratează delimitatorii consecutivi ca fiind unul singur cutie.

      Gata! Sarcina care necesita 3 formule și 5 funcții diferite durează acum doar câteva secunde și un singur clic pe un buton.

      Împărțirea celulelor după șir

      Această opțiune vă permite să divizați șiruri de caractere folosind orice combinație de caractere ca delimitator. Din punct de vedere tehnic, un șir de caractere se împarte în părți utilizând unul sau mai multe subșiruri diferite ca limite ale fiecărei părți.

      De exemplu, pentru a împărți o propoziție prin conjuncțiile " și " și " sau ", extindeți rubrica Împărțit de șiruri și introduceți șirurile de delimitatori, câte unul pe linie:

      Ca urmare, fraza sursă este separată la fiecare apariție a fiecărui delimitator:

      Sfat: Caracterele "sau", precum și "și" pot face adesea parte din cuvinte precum "portocaliu" sau "Andaluzia", așa că asigurați-vă că tastați o spațiu înainte și după și și sau pentru a preveni despărțirea cuvintelor.

      Și iată un alt exemplu din viața reală. Să presupunem că ați importat o coloană de date dintr-o sursă externă, care arată după cum urmează:

      5.1.2016 12:20

      5.2.2016 14:50

      Acest format nu este convențional pentru Excel și, prin urmare, niciuna dintre funcțiile Date nu ar recunoaște vreunul dintre elementele de dată sau oră. Pentru a împărți ziua, luna, anul, orele și minutele în celule separate, introduceți următoarele caractere în câmpul Împărțit de șiruri cutie:

      • Punct (.) pentru a separa ziua, luna și anul
      • Două puncte (:) pentru a separa orele și minutele
      • Spațiu pentru a separa data și ora

      Atingeți Split și veți obține imediat rezultatul:

      Împărțirea celulelor după mască (model)

      Separarea unei celule prin mască înseamnă divizarea unui șir de caractere pe baza unui model .

      Această opțiune este foarte utilă atunci când trebuie să divizați o listă de șiruri omogene în anumite elemente sau subșiruri. Complicația este că textul sursă nu poate fi divizat la fiecare apariție a unui anumit delimitator, ci doar la anumite apariții specifice. Următorul exemplu va face lucrurile mai ușor de înțeles.

      Să presupunem că aveți o listă de șiruri de caractere extrase dintr-un fișier jurnal:

      Nu puteți utiliza un spațiu ca delimitator, deoarece există spații între dată și oră, care ar trebui să apară într-o singură coloană, și există spații în textul excepției, care ar trebui să apară tot într-o singură coloană.

      Soluția este împărțirea unui șir de caractere prin următoarea mască: *ERROR:*Excepție:*

      În cazul în care asteriscul (*) reprezintă orice număr de caractere.

      Punctele (:) sunt incluse în delimitatori pentru că nu dorim ca acestea să apară în celulele rezultate.

      Și acum, extindeți Împărțit după mască secțiunea privind Split Text introduceți masca în panoul Introduceți delimitatori și faceți clic pe Split :

      Rezultatul va fi asemănător cu acesta:

      Notă. Împărțirea șirului de caractere prin mască este Sensibil la majuscule și minuscule Așadar, asigurați-vă că introduceți caracterele din mască exact așa cum apar în șirurile sursă.

      Un mare avantaj al acestei metode este flexibilitatea. De exemplu, dacă toate șirurile originale au valori de dată și oră și doriți ca acestea să apară în coloane diferite, utilizați această mască:

      *ERROR:*Excepție:*

      Tradusă în engleză simplă, masca instruiește add-in-ul să împartă șirurile originale în 4 părți:

      • Toate caracterele înainte de primul spațiu găsit în șirul de caractere (data)
      • Caracterele dintre primul spațiu și cuvânt ERROR: (timp)
      • Text între ERROR: și Excepție: (cod de eroare)
      • Tot ceea ce vine după Excepție: (text de excepție)

      Sper că v-a plăcut acest mod rapid și simplu de a împărți șiruri de caractere în Excel. Dacă sunteți curioși să încercați, o versiune de evaluare este disponibilă pentru descărcare mai jos. Vă mulțumesc pentru lectură și sper să ne vedem pe blog săptămâna viitoare!

      Descărcări disponibile

      Formulele Excel Split Cells (fișier .xlsx)

      Ultimate Suite 14-day full-functional version (fișier .exe)

      Michael Brown este un pasionat de tehnologie dedicat, cu o pasiune pentru simplificarea proceselor complexe folosind instrumente software. Cu mai mult de un deceniu de experiență în industria tehnologiei, el și-a perfecționat abilitățile în Microsoft Excel și Outlook, precum și în Google Sheets și Docs. Blogul lui Michael este dedicat împărtășirii cunoștințelor și experienței sale cu alții, oferind sfaturi și tutoriale ușor de urmat pentru îmbunătățirea productivității și eficienței. Indiferent dacă sunteți un profesionist experimentat sau un începător, blogul lui Michael oferă informații valoroase și sfaturi practice pentru a profita la maximum de aceste instrumente software esențiale.