Función TEXTSPLIT en Excel: dividir cadenas de texto por delimitador

  • Compartir Este
Michael Brown

El tutorial muestra cómo utilizar la nueva función TEXTSPLIT para dividir cadenas en Excel 365 por cualquier delimitador que especifique.

Puede haber varias situaciones en las que necesite dividir celdas en Excel. En versiones anteriores, ya estábamos equipados con una serie de instrumentos para llevar a cabo la tarea, tales como Texto a Columnas y Rellenar Flash. Ahora, también tenemos una función especial para esto, TEXTSPLIT, que puede separar una cadena en múltiples celdas a través de columnas y/o filas basadas en los parámetros que especifique.

    Función TEXTSPLIT de Excel

    La función TEXTSPLIT de Excel divide cadenas de texto por un delimitador dado a través de columnas o/y filas. El resultado es una matriz dinámica que se derrama en múltiples celdas automáticamente.

    La función admite hasta 6 argumentos, de los cuales sólo se requieren los dos primeros.

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

    texto (obligatorio) - el texto a dividir. Puede suministrarse como cadena o como referencia de celda.

    delimitador_col (obligatorio) - carácter(es) que indica(n) dónde dividir el texto en columnas. Si se omite, delimitador_de_filas debe definirse.

    delimitador_de_fila (opcional) - carácter(es) que indica(n) dónde dividir el texto entre las filas.

    ignorar_vacío (opcional) - especifica si se ignoran o no los valores vacíos:

    • FALSE (por defecto) - crea celdas vacías para delimitadores consecutivos sin valor intermedio.
    • TRUE - ignora los valores vacíos, es decir, no crea celdas vacías para dos o más delimitadores consecutivos.

    modo_partido (opcional) - determina la distinción entre mayúsculas y minúsculas para el delimitador. Activado por defecto.

    • 0 (por defecto) - distingue entre mayúsculas y minúsculas
    • 1 - no distingue mayúsculas de minúsculas

    pad_con (opcional) - un valor a utilizar en lugar de valores perdidos en matrices bidimensionales. El valor por defecto es un error #N/A.

    Por ejemplo, para dividir una cadena de texto en A2 en varias celdas utilizando una coma y un espacio como separador, la fórmula es:

    =TEXTSPLIT(A2, ", ")

    Disponibilidad de TEXTSPLIT

    La función TEXTSPLIT sólo está disponible en Excel para Microsoft 365 (Windows y Mac) y Excel para la web.

    Consejos:

    • En las versiones de Excel en las que la función SEPARAR TEXTO no está disponible (salvo Excel 365), puede utilizar el asistente Texto a columnas para dividir celdas.
    • Para realizar la tarea inversa, es decir, unir el contenido de varias celdas en una utilizando un delimitador determinado, TEXTJOIN es la función que debe utilizarse.

    Fórmula básica TEXTSPLIT para dividir una celda en Excel

    Para empezar, veamos cómo utilizar una fórmula TEXTSPLIT en su forma más simple para dividir una cadena de texto por un delimitador determinado.

    Dividir una celda horizontalmente entre columnas

    Para dividir el contenido de una celda determinada en varias columnas, proporcione una referencia a la celda que contiene la cadena original para la primera ( texto ) y el delimitador que marca el punto en el que debe producirse la división para el segundo argumento ( delimitador_col ).

    Por ejemplo, para separar la cadena en A2 horizontalmente por coma, la fórmula es:

    =TEXTSPLIT(A2, ",")

    Como delimitador se utiliza una coma entre comillas dobles (",").

    Como resultado, cada elemento separado por una coma va en una columna individual:

    Dividir una celda verticalmente entre filas

    Para dividir el texto en varias filas, el tercer argumento ( delimitador_de_filas ) es donde se coloca el delimitador. El segundo argumento ( delimitador_col ) se omite en este caso.

    Por ejemplo, para separar los valores de A2 en distintas filas, la fórmula es:

    =TEXTSPLIT(A2, ,",")

    Tenga en cuenta que, en ambos casos, la fórmula sólo se introduce en una celda (C2). En las celdas vecinas, los valores devueltos se derraman automáticamente. La matriz resultante (que se denomina rango de derrame) aparece resaltada con un borde azul que indica que todo lo que hay en su interior está calculado por la fórmula de la celda superior izquierda.

    Dividir texto por subcadena

    En muchos casos, los valores de la cadena de origen están separados por una secuencia de caracteres, un ejemplo típico es una coma y un espacio. Para manejar este escenario, utilice una subcadena para el delimitador.

    Por ejemplo, para separar el texto de A2 en varias columnas mediante una coma y un espacio, utilice la cadena ", " para delimitador_col .

    =TEXTSPLIT(A2, ", ")

    Esta fórmula va a B2, y luego la copias hacia abajo a través de tantas celdas como sea necesario.

    Dividir cadena en columnas y filas a la vez

    Para dividir una cadena de texto en filas y columnas a la vez, defina ambos delimitadores en su fórmula TEXTSPLIT.

    Por ejemplo, para dividir la cadena de texto en A2 entre columnas y filas, suministramos:

    • El signo igual ("=") para delimitador_col
    • Una coma y un espacio (", ") para delimitador_de_filas

    La fórmula completa tiene esta forma:

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

    El resultado es una matriz 2D formada por 2 columnas y 3 filas:

    Separar celdas mediante delimitadores múltiples

    Para manejar delimitadores múltiples o inconsistentes en la cadena fuente, utilice una constante de matriz como {"x", "y", "z"} para el argumento delimitador.

    En la captura de pantalla siguiente, el texto de A2 está delimitado tanto por comas (",") como por punto y coma (";") con y sin espacios. Para dividir la cadena verticalmente en filas por las 4 variaciones del delimitador, la fórmula es:

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

    También puede incluir sólo una coma (",") y un punto y coma (";") en la matriz y, a continuación, eliminar los espacios sobrantes con ayuda de la función TRIM:

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

    Dividir texto ignorando valores vacíos

    Si la cadena contiene dos o más delimitadores consecutivos sin un valor entre ellos, puede elegir si ignorar o no dichos valores vacíos. Este comportamiento se controla mediante el cuarto parámetro ignorar_vacío que por defecto es FALSE.

    Por defecto, la función TEXTSPLIT no ignora los valores vacíos. El comportamiento por defecto funciona bien para datos estructurados como en el ejemplo siguiente.

    En esta tabla de muestra, faltan las puntuaciones en algunas cadenas. La fórmula TEXTSPLIT con la función ignorar_vacío omitido o ajustado a FALSE maneja este caso perfectamente, creando una celda vacía para cada valor vacío.

    =TEXTSPLIT(A2, ", ")

    O

    =TEXTSPLIT(A2, ", ", FALSE)

    Como resultado, todos los valores aparecen en las columnas correspondientes.

    En caso de que sus cadenas contengan datos homogéneos, puede ser razonable ignorar los valores vacíos. Para ello, establezca el parámetro ignorar_vacío a TRUE o 1.

    Por ejemplo, para dividir t las cadenas de abajo colocando cada habilidad en una celda separada sin espacios, la fórmula es:

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

    En este caso, los valores que faltan entre delimitadores consecutivos se ignoran por completo:

    División de celdas con o sin distinción entre mayúsculas y minúsculas

    Para controlar la distinción entre mayúsculas y minúsculas del delimitador, utilice el quinto argumento, modo_partido .

    Por defecto, modo_partido se fija en 0, con lo que TEXTSPLIT distingue entre mayúsculas y minúsculas .

    En este ejemplo, los números están separados por las letras "x" minúscula y "X" mayúscula.

    La fórmula con la distinción entre mayúsculas y minúsculas por defecto sólo acepta la "x" minúscula como delimitador:

    =TEXTSPLIT(A2, " x ")

    Preste atención a que el delimitador tenga un espacio a ambos lados de la letra " x " para evitar espacios iniciales y finales en los resultados.

    Para desactivar la distinción entre mayúsculas y minúsculas, introduzca 1 para modo_partido para forzar a la fórmula TEXTSPLIT a ignorar las mayúsculas y minúsculas:

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

    Ahora, todas las cadenas se dividen correctamente por cualquiera de los delimitadores:

    Rellenar los valores que faltan en una matriz 2D

    El último argumento de la función TEXTSPLIT, pad_con Cuando una cadena de este tipo se divide en columnas y filas, Excel devuelve por defecto los errores #N/A en lugar de los valores que faltan para no alterar la estructura de una matriz bidimensional.

    En la cadena siguiente, no hay "=" ( delimitador_col Para mantener la integridad de la matriz resultante, TEXTSPLIT muestra #N/A junto a "Puntuación".

    Para que el resultado sea más fácil de usar, puede sustituir el error #N/A por cualquier valor que desee. Simplemente, escriba el valor deseado en el campo pad_con argumento.

    En nuestro caso, podría ser un guión ("-"):

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

    O una cadena vacía (""):

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

    Ahora que ha aprendido los usos prácticos de cada argumento de la función TEXTSPLIT, vamos a discutir un par de ejemplos avanzados que pueden ayudarle a hacer frente a retos no triviales en sus hojas de cálculo Excel.

    Dividir fechas en día, mes y año

    Para dividir una fecha en unidades individuales, primero hay que convertir la fecha en texto porque la función TEXTSPLIT trata con cadenas de texto mientras que las fechas de Excel son números.

    La forma más sencilla de convertir un valor numérico en texto es utilizar la función TEXTO. Sólo tiene que asegurarse de proporcionar un código de formato apropiado para su fecha.

    En nuestro caso, la fórmula es:

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

    El siguiente paso es anidar la función anterior en el primer argumento de TEXTSPLIT e introducir el delimitador correspondiente en el segundo o tercer argumento, dependiendo de si se está dividiendo entre columnas o filas. En este ejemplo, las unidades de fecha están delimitadas por barras inclinadas, por lo que utilizamos "/" para el argumento delimitador_col argumento:

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

    Dividir celdas y eliminar determinados caracteres

    Imagínese esto: ha dividido una cadena larga en trozos, pero la matriz resultante aún contiene algunos caracteres no deseados, como los paréntesis de la captura de pantalla siguiente:

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

    Para eliminar los paréntesis de apertura y cierre de una vez, anide dos funciones SUBSTITUTE una dentro de otra (sustituyendo cada una de ellas un paréntesis por una cadena vacía) y utilice la fórmula TEXTSPLIT para la función texto del SUBSTITUTO interno:

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

    Consejo: Si la matriz final contiene demasiados caracteres adicionales, puede eliminarlos utilizando uno de los métodos descritos en este artículo: Cómo eliminar caracteres no deseados en Excel.

    Dividir cadenas omitiendo determinados valores

    Supongamos que desea separar las cadenas siguientes en 4 columnas: Nombre , Apellido , Puntuación y Resultado El problema es que algunas cadenas contienen el título "Sr." o "Sra.", por lo que los resultados son erróneos:

    La solución no es obvia, pero es bastante sencilla :)

    Además de los delimitadores existentes, que son un espacio (" ") y una coma y un espacio (", "), incluya las cadenas "Sr. " y "Sra. " en el campo delimitador_col de forma que la función utilice los propios títulos para separar el texto. Para ignorar los valores vacíos, se establece la constante de matriz ignorar_vacío a TRUE.

    =TEXTSPLIT(A2, {" ",", ", "Sr. ", "Sra."}, ,TRUE)

    Ahora, ¡los resultados son absolutamente perfectos!

    Alternativas a TEXTSPLIT

    En las versiones de Excel que no admiten la función SEPARAR TEXTO, puede dividir cadenas utilizando distintas combinaciones de la función BUSCAR / ENCONTRAR con IZQUIERDA, DERECHA y MEDIA. En particular:

    • BUSCAR sin distinguir mayúsculas de minúsculas o BUSCAR distinguiendo mayúsculas de minúsculas determina la posición del delimitador dentro de una cadena, y
    • Las funciones IZQUIERDA, DERECHA y MEDIA extraen una subcadena antes, después o entre dos instancias del delimitador.

    En nuestro caso, para dividir los valores separados por una coma y un espacio las fórmulas son las siguientes.

    Para extraer el nombre:

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

    Para tirar del marcador:

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

    Para obtener el resultado:

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

    Para una explicación detallada de la lógica de las fórmulas, véase Cómo dividir cadenas por carácter o máscara.

    Tenga en cuenta que, a diferencia de la función TEXTSPLIT de la matriz dinámica, estas fórmulas siguen el método tradicional de una fórmula y una celda. Se introduce la fórmula en la primera celda y, a continuación, se arrastra hacia abajo por la columna para copiarla en las celdas inferiores.

    La siguiente captura de pantalla muestra los resultados:

    Así es cómo dividir celdas en Excel 365 utilizando TEXTSPLIT o soluciones alternativas en versiones anteriores. Te agradezco la lectura y ¡espero verte en nuestro blog la próxima semana!

    Cuaderno de prácticas para descargar

    Función TEXTSPLIT para dividir cadenas - ejemplos de fórmulas (archivo .xlsx)

    Michael Brown es un entusiasta de la tecnología dedicado y apasionado por simplificar procesos complejos utilizando herramientas de software. Con más de una década de experiencia en la industria de la tecnología, ha perfeccionado sus habilidades en Microsoft Excel y Outlook, así como en Google Sheets y Docs. El blog de Michael está dedicado a compartir su conocimiento y experiencia con otros, brindando consejos y tutoriales fáciles de seguir para mejorar la productividad y la eficiencia. Ya sea un profesional experimentado o un principiante, el blog de Michael ofrece información valiosa y consejos prácticos para aprovechar al máximo estas herramientas de software esenciales.