Función TEXTSPLIT en Excel: divide cadeas de texto por delimitador

  • Comparte Isto
Michael Brown

O titorial mostra como usar a nova función TEXTSPLIT para dividir cadeas en Excel 365 por calquera delimitador que especifique.

Pode haber varias situacións nas que necesite dividir celas en Excel. Nas versións anteriores, xa estabamos equipados cunha serie de instrumentos para realizar a tarefa, como Text to Columns e Fill Flash. Agora, tamén temos unha función especial para isto, TEXTSPLIT, que pode separar unha cadea en varias celas en columnas ou/ou filas en función dos parámetros que especifique.

    Función de Excel TEXTSPLIT

    A función TEXTSPLIT en Excel divide as cadeas de texto por un delimitador determinado en columnas ou/ou filas. O resultado é unha matriz dinámica que se derrama en varias celas automaticamente.

    A función leva ata 6 argumentos, dos cales só son necesarios os dous primeiros.

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

    texto (obrigatorio): o texto a dividir. Pódese proporcionar como referencia de cadea ou cela.

    col_delimiter (obrigatorio): un(s) carácter(s) que indica onde dividir o texto en columnas. Se se omite, debe definirse row_delimiter .

    row_delimiter (opcional): un(s) carácter(s) que indica onde dividir o texto entre as filas.

    ignore_empty (opcional) - especifica se ignorar os valores baleiros ou non:

    • FALSO (predeterminado) -crea celas baleiras para delimitadores consecutivos sen un valor intermedio.
    • VERDADEIRO: ignora os valores baleiros, é dicir, non crees celas baleiras para dous ou máis delimitadores consecutivos.

    match_mode (opcional): determina a distinción entre maiúsculas e minúsculas para o delimitador. Activado de forma predeterminada.

    • 0 (predeterminado) - distingue entre maiúsculas e minúsculas
    • 1 - non distingue entre maiúsculas e minúsculas

    pad_with (opcional ) - un valor para usar en lugar dos valores que faltan en matrices bidimensionais. O predeterminado é un erro #N/D.

    Por exemplo, para dividir unha cadea de texto en A2 en varias celas usando unha coma e un espazo como separador, a fórmula é:

    =TEXTSPLIT(A2, ", ")

    Dispoñibilidade de TEXTSPLIT

    A función TEXTSPLIT só está dispoñible en Excel para Microsoft 365 (Windows e Mac) e Excel para a web.

    Consellos:

    • Nas versións de Excel nas que a función TEXTSPLIT non está dispoñible (que non sexa Excel 365), pode usar o asistente Text to Columns para dividir celas.
    • Para realizar a tarefa inversa, é dicir, unir o contido de varias celas nunha soa usando un determinado delimitador, TEXTJOIN é a función a usar.

    Fórmula básica de TEXTSPLIT para dividir unha cela en Excel

    Para comezar, vexamos como usar un TEXTSPLIT fórmula na súa forma máis sinxela para dividir unha cadea de texto por un delimitador particular.

    Dividir unha cela horizontalmente entre columnas

    Para dividir o contido dunha determinada cela en varias columnas, proporcione unreferencia á cela que contén a cadea orixinal para o primeiro argumento ( texto ) e ao delimitador que marca o punto onde debe producirse a división para o segundo argumento ( col_delimiter ).

    Por exemplo, para separar a cadea en A2 horizontalmente mediante coma, a fórmula é:

    =TEXTSPLIT(A2, ",")

    Para o delimitador, usamos unha coma entre comiñas dobres (",") .

    Como resultado, cada elemento separado por coma pasa a unha columna individual:

    Dividir unha cela verticalmente entre filas

    Para dividir o texto en varias filas, a terceira argumento ( row_delimiter ) é onde colocas o delimitador. O segundo argumento ( col_delimiter ) omítese neste caso.

    Por exemplo, para separar os valores en A2 en filas diferentes, a fórmula é:

    =TEXTSPLIT(A2, ,",")

    Ten en conta que, en ambos os casos, a fórmula só se introduce nunha cela (C2). Nas celas veciñas, os valores devoltos verteranse automaticamente. A matriz resultante (que se denomina intervalo de derrame) resáltase cun bordo azul que indica que todo o que está dentro está calculado pola fórmula da cela superior esquerda.

    Dividir o texto por subcadea

    En moitos casos, os valores da cadea de orixe están separados por unha secuencia de caracteres, sendo un exemplo típico unha coma e un espazo. Para xestionar este escenario, use unha subcadea para o delimitador.

    Por exemplo, para separar o texto en A2 en varias columnasmediante unha coma e un espazo, use a cadea ", " para col_delimiter .

    =TEXTSPLIT(A2, ", ")

    Esta fórmula vai a B2, e despois cópiaa a través de tantos células segundo sexa necesario.

    Dividir cadea en columnas e filas á vez

    Para dividir unha cadea de texto en filas e columnas á vez, defina ambos os delimitadores na súa fórmula TEXTSPLIT.

    Por exemplo, para dividir a cadea de texto en A2 en columnas e filas, proporcionamos:

    • O signo de igual ("=") para col_delimiter
    • Unha coma e un espazo (", ") para row_delimiter

    A fórmula completa toma esta forma:

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

    O resultado é un 2-D matriz formada por 2 columnas e 3 filas:

    Separa as celas por varios delimitadores

    Para xestionar varios delimitadores ou inconsistentes na cadea de orixe, utiliza unha constante matricial como {"x","y" ,"z"} para o argumento delimitador.

    Na seguinte captura de pantalla, o texto en A2 está delimitado por comas (",") e punto e coma (";") con e sen espazos. Para dividir a cadea verticalmente en filas polas 4 variacións do delimitador, a fórmula é:

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

    Ou, pode incluír só coma (",") e punto e coma ("; ") na matriz e, a continuación, elimine os espazos adicionais coa axuda da función TRIM:

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

    Dividir o texto ignorando os valores baleiros

    Se a cadea contén dous ou máis delimitadores consecutivos sen un valor entre eles, pode escoller se ignorar tales baleirosvalores ou non. Este comportamento está controlado polo cuarto parámetro ignore_empty , que por defecto é FALSE.

    Por defecto, a función TEXTSPLIT non ignora os valores baleiros. O comportamento predeterminado funciona ben para os datos estruturados como no seguinte exemplo.

    Nesta táboa de mostra, as puntuacións faltan nalgunhas cadeas. A fórmula TEXTSPLIT co argumento ignore_empty omitido ou definido como FALSO xestiona este caso perfectamente, creando unha cela baleira para cada valor baleiro.

    =TEXTSPLIT(A2, ", ")

    Ou

    =TEXTSPLIT(A2, ", ", FALSE)

    Como resultado, todos os valores aparecen nas columnas apropiadas.

    No caso de que as súas cadeas conteñan datos homoxéneos, pode ser razoable ignorar os valores baleiros. Para iso, establece o argumento ignore_empty en VERDADEIRO ou 1.

    Por exemplo, para dividir as seguintes cadeas colocando cada habilidade nunha cela separada sen ocos, a fórmula é:

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

    Neste caso, os valores que faltan entre delimitadores consecutivos ignóranse por completo:

    División de celas distingue entre maiúsculas e minúsculas ou non

    Para controlar as maiúsculas e minúsculas. sensibilidade do delimitador, use o quinto argumento, match_mode .

    Por defecto, match_mode está configurado en 0, facendo que TEXTSPLIT distinga entre maiúsculas e minúsculas .

    Neste exemplo, os números están separados por letras "x" minúsculas e "X" maiúsculas.

    A fórmula coa distinción entre maiúsculas e minúsculas predeterminada só acepta a "x" minúscula "como odelimitador:

    =TEXTSPLIT(A2, " x ")

    Por favor, preste atención a que o delimitador ten un espazo a ambos os dous lados da letra "x" para evitar espazos iniciais e finais nos resultados.

    Para desactivar a distinción entre maiúsculas e minúsculas, proporciona 1 para match_mode para forzar a fórmula TEXTSPLIT a ignorar as letras maiúsculas:

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

    Agora, todos as cadeas están divididas correctamente por calquera dos delimitadores:

    Pad missing values ​​in 2D array

    O último argumento da función TEXTSPLIT, pad_with , é útil no caso de que un ou faltan máis valores na cadea de orixe. Cando unha cadea deste tipo se divide en columnas e filas, de forma predeterminada, Excel devolve #N/A erros en lugar dos valores que faltan para non alterar a estrutura dunha matriz bidimensional.

    Na seguinte cadea, non hai "=" ( col_delimiter ) despois de "Puntuación". Para manter a integridade da matriz resultante, TEXTSPLIT mostra #N/A xunto a "Puntuación".

    Para que o resultado sexa máis fácil de usar, pode substituír o erro #N/A por calquera valor que desexe. Simplemente, escriba o valor desexado no argumento pad_with .

    No noso caso, pode ser un guión ("-"):

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

    Ou unha cadea baleira (""):

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

    Agora que aprendeu os usos prácticos de cada argumento da función TEXTSPLIT, imos comentar un par de exemplos avanzados que poden axudarche afrontar retos non triviais nas túas follas de cálculo de Excel.

    Dividir datasen día, mes e ano

    Para dividir unha data en unidades individuais, primeiro cómpre converter a data en texto porque a función TEXTSPLIT trata as cadeas de texto mentres que as datas de Excel son números.

    O máis sinxelo. A forma de converter un valor numérico en texto é mediante a función TEXTO. Só asegúrate de proporcionar un código de formato adecuado para a túa data.

    No noso caso, a fórmula é:

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

    O seguinte paso é aniñar a función anterior en o primeiro argumento de TEXTSPLIT e introduza o delimitador correspondente para o segundo ou o terceiro argumento, dependendo de se está dividindo en columnas ou filas. Neste exemplo, as unidades de data están delimitadas con barras, polo que usamos "/" para o argumento col_delimiter :

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

    Dividir celas e eliminar certos caracteres

    Imaxina isto: dividiches unha cadea longa en anacos, pero a matriz resultante aínda contén algúns caracteres non desexados, como parénteses na seguinte captura de pantalla:

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

    Para eliminar fóra das parénteses de apertura e de peche á vez, aniña dúas funcións SUBSTITUTE unha noutra (substituíndo cada unha un paréntese por unha cadea baleira) e use a fórmula TEXTSPLIT para o argumento texto do SUBSTITUTE interno:

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

    Consello. Se a matriz final contén demasiados caracteres adicionais, podes eliminalos mediante un dos métodos descritos neste artigo: Como eliminar os caracteres non desexados en Excel.

    Dividir cadeas saltando certos valores

    Supoño que queres separar as seguintes cadeas en 4 columnas: Nome , Apelido , Puntuación e Resultado . O problema é que algunhas cadeas conteñen o título "Mr." ou "Sra.", polo que os resultados son todos erróneos:

    A solución non é obvia pero ben sinxela :)

    Ademais dos delimitadores existentes, que son un espazo (" ") e unha coma e un espazo (", "), inclúe as cadeas "Mr. " e "Ms. " na constante da matriz col_delimiter , para que a función use os propios títulos para separar o texto. Para ignorar os valores baleiros, configura o argumento ignore_empty en TRUE.

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

    Agora, os resultados son absolutamente perfectos.

    Alternativas TEXTSPLIT

    Nas versións de Excel onde non se admite a función TEXTSPLIT, podes dividir cadeas utilizando diferentes combinacións da función SEARCH/FIND con LEFT, RIGHT e MID. En particular:

    • BUSCA insensible entre maiúsculas e minúsculas ou FIND determina a posición do delimitador dentro dunha cadea e
    • As funcións ESQUERDA, DEREITA e MID extraen unha subcadea antes de , despois ou entre dúas instancias do delimitador.

    No noso caso, para dividir os valores separados por unha coma e un espazo , as fórmulas son as seguintes.

    Para extraer o nome:

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

    Para sacar a puntuación:

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

    Para obter oresultado:

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

    Para obter unha explicación detallada da lóxica das fórmulas, consulte Como dividir cadeas por carácter ou máscara.

    Ten en conta que a diferenza da matriz dinámica TEXTSPLIT, estas fórmulas seguen o enfoque tradicional dunha fórmula dunha célula. Introduza a fórmula na primeira cela e arrástraa cara abaixo na columna para copiala nas celas de abaixo.

    A captura de pantalla que aparece a continuación mostra os resultados:

    Así é como dividir as celas en Excel 365 utilizando TEXTSPLIT ou solucións alternativas en versións anteriores. Grazas por ler e espero verte no noso blog a próxima semana!

    Practica para descargar o libro

    Función TEXTSPLIT para dividir cadeas: exemplos de fórmulas (ficheiro .xlsx)

    3>

    Michael Brown é un entusiasta da tecnoloxía dedicada á súa paixón por simplificar procesos complexos mediante ferramentas de software. Con máis dunha década de experiencia na industria tecnolóxica, perfeccionou as súas habilidades en Microsoft Excel e Outlook, así como en Follas de cálculo e Documentos de Google. O blog de Michael está dedicado a compartir o seu coñecemento e experiencia con outros, proporcionando consellos e titoriais fáciles de seguir para mellorar a produtividade e a eficiencia. Tanto se es un profesional experimentado como un principiante, o blog de Michael ofrece valiosas ideas e consellos prácticos para sacar o máximo proveito destas ferramentas de software esenciais.