Funció TEXTSPLIT a Excel: divideix les cadenes de text per delimitador

  • Comparteix Això
Michael Brown

El tutorial mostra com utilitzar la nova funció TEXTSPLIT per dividir cadenes a Excel 365 per qualsevol delimitador que especifiqueu.

Poden haver-hi diverses situacions en què necessiteu dividir. cel·les en Excel. En versions anteriors, ja estàvem equipats amb una sèrie d'instruments per dur a terme la tasca, com ara Text to Columns i Fill Flash. Ara, també tenim una funció especial per a això, TEXTSPLIT, que pot separar una cadena en diverses cel·les en columnes o files segons els paràmetres que especifiqueu.

    Funció Excel TEXTSPLIT

    La funció TEXTSPLIT d'Excel divideix les cadenes de text per un delimitador determinat en columnes o files. El resultat és una matriu dinàmica que s'aboca a diverses cel·les automàticament.

    La funció pren fins a 6 arguments, dels quals només calen els dos primers.

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

    text (obligatori): el text a dividir. Es pot proporcionar com a referència de cadena o cel·la.

    col_delimiter (obligatori): caràcters que indiquen on dividir el text entre columnes. Si s'omet, s'ha de definir row_delimiter .

    row_delimiter (opcional): caràcters que indiquen on dividir el text entre files.

    ignore_empty (opcional) - especifica si s'han d'ignorar els valors buits o no:

    • FALSE (per defecte) -creeu cel·les buides per a delimitadors consecutius sense un valor intermedi.
    • VERTADER: ignora els valors buits, és a dir, no creeu cel·les buides per a dos o més delimitadors consecutius.

    match_mode (opcional): determina la distinció entre majúscules i minúscules per al delimitador. Activat per defecte.

    • 0 (per defecte) - distingeix entre majúscules
    • 1 - no distingeix entre majúscules

    pad_with (opcional ) - un valor per utilitzar en lloc dels valors que falten en matrius bidimensionals. El valor predeterminat és un error #N/A.

    Per exemple, per dividir una cadena de text en A2 en diverses cel·les utilitzant una coma i un espai com a separador, la fórmula és:

    =TEXTSPLIT(A2, ", ")

    Disponibilitat de TEXTSPLIT

    La funció TEXTSPLIT només està disponible a Excel per a Microsoft 365 (Windows i Mac) i Excel per al web.

    Consells:

    • A les versions d'Excel on la funció TEXTSPLIT no està disponible (a part d'Excel 365), podeu utilitzar l'assistent de text a columnes per dividir cel·les.
    • Per realitzar la tasca inversa, és a dir, unir el contingut de diverses cel·les en una utilitzant un determinat delimitador, TEXTJOIN és la funció que cal utilitzar.

    Fórmula bàsica de TEXTSPLIT per dividir una cel·la a Excel

    Per començar, vegem com utilitzar un TEXTSPLIT fórmula en la seva forma més senzilla per dividir una cadena de text per un delimitador particular.

    Dividir una cel·la horitzontalment entre columnes

    Per dividir el contingut d'una cel·la determinada en diverses columnes, proporcioneu unreferència a la cel·la que conté la cadena original per al primer argument ( text ) i el delimitador que marca el punt on s'ha de produir la divisió per al segon argument ( col_delimiter ).

    Per exemple, per separar la cadena en A2 horitzontalment per comes, la fórmula és:

    =TEXTSPLIT(A2, ",")

    Per al delimitador, utilitzem una coma entre cometes dobles (",") .

    Com a resultat, cada element separat per una coma passa a una columna individual:

    Dividiu una cel·la verticalment entre files

    Per dividir el text en diverses files, la tercera argument ( row_delimiter ) és on col·loqueu el delimitador. El segon argument ( col_delimiter ) s'omet en aquest cas.

    Per exemple, per separar els valors d'A2 en files diferents, la fórmula és:

    =TEXTSPLIT(A2, ,",")

    Tingueu en compte que, en ambdós casos, la fórmula només s'introdueix en una cel·la (C2). A les cel·les veïnes, els valors retornats s'aboquen automàticament. La matriu resultant (que s'anomena interval de vessament) es ressalta amb una vora blava que indica que tot el que hi ha dins es calcula mitjançant la fórmula de la cel·la superior esquerra.

    Dividir el text per subcadena

    En molts casos, els valors de la cadena d'origen estan separats per una seqüència de caràcters, una coma i un espai són un exemple típic. Per gestionar aquest escenari, utilitzeu una subcadena per al delimitador.

    Per exemple, per separar el text en A2 en diverses columnes.amb una coma i un espai, utilitzeu la cadena ", " per a col_delimiter .

    =TEXTSPLIT(A2, ", ")

    Aquesta fórmula va a B2 i, a continuació, la copieu a través de tants cèl·lules segons sigui necessari.

    Dividiu la cadena en columnes i files alhora

    Per dividir una cadena de text en files i columnes alhora, definiu els dos delimitadors a la fórmula TEXTSPLIT.

    Per exemple, per dividir la cadena de text en A2 en columnes i files, proporcionem:

    • El signe igual ("=") per a col_delimiter
    • Una coma i un espai (", ") per a row_delimiter

    La fórmula completa pren aquesta forma:

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

    El resultat és un 2-D matriu que consta de 2 columnes i 3 files:

    Separeu les cel·les per múltiples delimitadors

    Per gestionar delimitadors múltiples o inconsistents a la cadena d'origen, utilitzeu una constant de matriu com {"x","y" ,"z"} per a l'argument delimitador.

    A la captura de pantalla següent, el text en A2 està delimitat per comes (",") i punt i coma (";") amb i sense espais. Per dividir la cadena verticalment en files mitjançant les 4 variacions del delimitador, la fórmula és:

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

    O podeu incloure només una coma (",") i un punt i coma ("; ") a la matriu i, a continuació, elimineu els espais addicionals amb l'ajuda de la funció TRIM:

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

    Dividiu el text ignorant els valors buits

    Si la cadena conté dos o més delimitadors consecutius sense un valor entre ells, podeu triar si voleu ignorar aquests buitsvalors o no. Aquest comportament està controlat pel quart paràmetre ignore_empty , que per defecte és FALSE.

    Per defecte, la funció TEXTSPLIT no ignora els valors buits. El comportament predeterminat funciona bé per a les dades estructurades com a l'exemple següent.

    En aquesta taula d'exemple, falten les puntuacions en algunes cadenes. La fórmula TEXTSPLIT amb l'argument ignore_empty omès o establert en FALSE gestiona aquest cas perfectament, creant una cel·la buida per a cada valor buit.

    =TEXTSPLIT(A2, ", ")

    O

    =TEXTSPLIT(A2, ", ", FALSE)

    Com a resultat, tots els valors apareixen a les columnes adequades.

    En cas que les vostres cadenes continguin dades homogènies, pot ser raonable ignorar els valors buits. Per a això, establiu l'argument ignore_empty a TRUE o 1.

    Per exemple, per dividir les cadenes següents col·locant cada habilitat en una cel·la separada sense espais, la fórmula és:

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

    En aquest cas, els valors que falten entre delimitadors consecutius s'ignoren completament:

    Divisió de cel·les que distingeix entre majúscules i minúscules

    Per controlar les majúscules i minúscules- sensibilitat del delimitador, feu servir el cinquè argument, match_mode .

    Per defecte, match_mode s'estableix en 0, fent que TEXTSPLIT distingeix entre majúscules i minúscules .

    En aquest exemple, els números estan separats per la "x" minúscula i les lletres "X" majúscules.

    La fórmula amb la distinció entre majúscules i minúscules només accepta la "x" minúscula. "com eldelimitador:

    =TEXTSPLIT(A2, " x ")

    Si us plau, tingueu en compte que el delimitador té un espai als dos costats de la lletra "x" per tal d'evitar espais inicials i finals als resultats.

    Per desactivar la distinció entre majúscules i minúscules, proporcioneu 1 per a match_mode per forçar la fórmula TEXTSPLIT a ignorar les majúscules i minúscules:

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

    Ara, tots les cadenes es divideixen correctament per qualsevol delimitador:

    Pad valors que falten a la matriu 2D

    L'últim argument de la funció TEXTSPLIT, pad_with , és útil en cas d'un o falten més valors a la cadena d'origen. Quan aquesta cadena es divideix en columnes i files, de manera predeterminada, Excel retorna errors #N/A en lloc dels valors que falten per no alterar l'estructura d'una matriu bidimensional.

    A la cadena següent, no hi ha "=" ( col_delimiter ) després de "Puntuació". Per mantenir la integritat de la matriu resultant, TEXTSPLIT mostra #N/A al costat de "Puntuació".

    Per fer que el resultat sigui més fàcil d'utilitzar, podeu substituir l'error #N/A amb qualsevol valor que vulgueu. Simplement, escriviu el valor desitjat a l'argument pad_with .

    En el nostre cas, podria ser un guionet ("-"):

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

    O una cadena buida (""):

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

    Ara que ja heu après els usos pràctics de cada argument de la funció TEXTSPLIT, parlem d'un parell d'exemples avançats que us poden ajudar fer front a reptes no trivials als vostres fulls de càlcul d'Excel.

    Dividiu les datesen dia, mes i any

    Per dividir una data en unitats individuals, primer heu de convertir la data en text perquè la funció TEXTSPLIT tracta les cadenes de text mentre que les dates d'Excel són números.

    El més fàcil. La manera de convertir un valor numèric en text és mitjançant la funció TEXT. Només assegureu-vos de proporcionar un codi de format adequat per a la vostra data.

    En el nostre cas, la fórmula és:

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

    El següent pas és anidar la funció anterior a el 1r argument de TEXTSPLIT i introduïu el delimitador corresponent per al 2n o 3r argument, depenent de si esteu dividint en columnes o files. En aquest exemple, les unitats de data estan delimitades amb barres obliques, de manera que fem servir "/" per a l'argument col_delimiter :

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

    Dividiu cel·les i eliminem certs caràcters

    Imagina això: has dividit una cadena llarga en trossos, però la matriu resultant encara conté alguns caràcters no desitjats, com ara parèntesis a la captura de pantalla següent:

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

    Per eliminar fora dels parèntesis d'obertura i de tancament alhora, niu dues funcions SUBSTITUTE l'una a l'altra (cada una substitueix un parèntesi per una cadena buida) i utilitzeu la fórmula TEXTSPLIT per a l'argument text del SUBSTITUTE interior:

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

    Consell. Si la matriu final conté massa caràcters addicionals, podeu purgar-los mitjançant un dels mètodes descrits en aquest article: Com eliminar caràcters no desitjats a Excel.

    Dividiu cadenes saltant certs valors

    Suposant que voleu separar les cadenes següents en 4 columnes: Nom , Cognoms , Puntuació i Resultat . El problema és que algunes cadenes contenen el títol "Mr." o "Sra.", per la qual cosa els resultats són tots equivocats:

    La solució no és òbvia, però força senzilla :)

    A més dels delimitadors existents, que són un espai (" ") i una coma i un espai (", "), incloeu les cadenes "Mr. " i "Ms. " a la constant de matriu col_delimiter , de manera que la funció utilitzi els propis títols per separar el text. Per ignorar els valors buits, establiu l'argument ignore_empty a TRUE.

    =TEXTSPLIT(A2, {" ",", ","Mr. ","Ms. "}, ,TRUE)

    Ara, els resultats són absolutament perfectes!

    Alternatives TEXTSPLIT

    A les versions d'Excel on la funció TEXTSPLIT no s'admet, podeu dividir les cadenes utilitzant diferents combinacions de la funció SEARCH/FIND amb LEFT, RIGHT i MID. En particular:

    • Cerca que no distingeix entre majúscules i minúscules o TROBAR que distingeix entre majúscules i minúscules determina la posició del delimitador dins d'una cadena i
    • Les funcions ESQUERRA, DRETA i MITJANA extreu una subcadena abans. , després o entre dues instàncies del delimitador.

    En el nostre cas, per dividir els valors separats per una coma i un espai , les fórmules són les següents.

    Per extreure el nom:

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

    Per treure la puntuació:

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

    Per obtenir elresultat:

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

    Per obtenir una explicació detallada de la lògica de les fórmules, vegeu Com dividir cadenes per caràcter o màscara.

    Tingueu en compte que, a diferència de la matriu dinàmica Funció TEXTSPLIT, aquestes fórmules segueixen l'enfocament tradicional d'una fórmula d'una cel·la. Introduïu la fórmula a la primera cel·la i, a continuació, arrossegueu-la per la columna per copiar-la a les cel·les següents.

    La captura de pantalla següent mostra els resultats:

    Així és com dividir les cel·les a Excel 365 utilitzant TEXTSPLIT o solucions alternatives en versions anteriors. Us agraeixo la lectura i espero veure-us al nostre bloc la setmana vinent!

    Practiqueu el llibre de treball per descarregar

    Funció TEXTSPLIT per dividir cadenes: exemples de fórmules (fitxer .xlsx)

    3>

    Michael Brown és un entusiasta de la tecnologia dedicat amb una passió per simplificar processos complexos mitjançant eines de programari. Amb més d'una dècada d'experiència en la indústria tecnològica, ha perfeccionat les seves habilitats en Microsoft Excel i Outlook, així com en Google Sheets i Docs. El bloc de Michael es dedica a compartir els seus coneixements i experiència amb altres persones, oferint consells i tutorials fàcils de seguir per millorar la productivitat i l'eficiència. Tant si sou un professional experimentat com si sou un principiant, el bloc de Michael ofereix valuoses idees i consells pràctics per treure el màxim profit d'aquestes eines de programari essencials.