Matrices dinámicas

Función DIVIDIRTEXTO en Excel: separar texto en columnas con una fórmula

Divide un texto por un delimitador y derrama las partes en columnas o en filas.

DIVIDIRTEXTO hace lo que hace Texto en columnas, pero como fórmula. Le das un texto y un delimitador y lo parte, derramando cada trozo en su propia celda. "Norte,Taladro,Vencida" se convierte en tres celdas.

La ventaja sobre Texto en columnas es que está viva. Texto en columnas es una operación puntual sobre una selección: la ejecutas y tienes que volver a ejecutarla la próxima vez que lleguen datos. DIVIDIRTEXTO vive en una celda y vuelve a dividir automáticamente cuando el texto de origen cambia, lo que la convierte en la herramienta adecuada para una hoja que recibe una exportación nueva cada semana.

Puede dividir en las dos direcciones a la vez. El primer argumento de delimitador reparte por columnas y el segundo reparte por filas, así que una sola fórmula puede convertir una celda con un bloque de texto delimitado en una tabla rectangular en condiciones.

Sintaxis

=DIVIDIRTEXTO(texto; delimitador_col; [delimitador_fila]; [ignorar_vacío]; [modo_coincidencia]; [rellenar_con])

Argumentos

texto
Obligatorio
El texto que se divide.
delimitador_col
Obligatorio
Por qué dividir al repartir en columnas. Pásale varios en una constante matricial para dividir por cualquiera de ellos.
delimitador_fila
Opcional
Por qué dividir al repartir hacia abajo en filas.
ignorar_vacío
Opcional
VERDADERO omite los resultados vacíos que provocan dos delimitadores seguidos. Por defecto es FALSO.
modo_coincidencia
Opcional
0 distingue mayúsculas (por defecto), 1 no.
rellenar_con
Opcional
Con qué rellenar las celdas que falten cuando las filas se dividen en un número distinto de trozos. Por defecto, #N/D.

Los datos de ejemplo

Una cadena delimitada por fila, en A2:A4.

A
1Registro
2Norte,Taladro,Vencida
3Sur,Alargador,Pagada
4Norte,Gafas,Vencida

Ejemplos resueltos

=DIVIDIRTEXTO(A2; ",")

Resultado: Norte | Taladro | Vencida

Tres trozos derramados en tres columnas.

=DIVIDIRTEXTO(A2; ; ",")

Resultado: Norte, luego Taladro, luego Vencida, uno debajo de otro

Al omitir el delimitador de columna con un argumento vacío y pasar en su lugar uno de fila, la división se hace hacia abajo.

=DIVIDIRTEXTO("Alicia Moreau"; " ")

Resultado: Alicia | Moreau

Dividir un nombre completo por el espacio: el uso de cada día, y en una línea en lugar de hacer malabares con IZQUIERDA y ENCONTRAR.

=DIVIDIRTEXTO(A2; {","\";"})

Resultado: Norte | Taladro | Vencida

Una constante matricial divide por cualquiera de los dos delimitadores, lo que resuelve exportaciones que no son coherentes con el separador.

Ahora practícala

Leer sobre una fórmula no es lo mismo que escribirla. Abre el ejercicio de esta función y escríbela en una hoja real: recibirás comentarios inmediatos sobre qué celda está mal y por qué.

Abrir el ejercicio: Separa una columna de nombres pegados

Errores habituales y cómo resolverlos

#¡DESBORDAMIENTO!

Por qué ocurre: Las celdas que necesitan los trozos no están vacías.

Cómo resolverlo: Vacía la fila a la derecha de la fórmula, o la columna de abajo si estás dividiendo en filas.

#N/D en algunas celdas

Por qué ocurre: Se están dividiendo varias filas a la vez y no todas tienen el mismo número de trozos. Las filas cortas se rellenan.

Cómo resolverlo: Usa el argumento rellenar_con: =DIVIDIRTEXTO(A2:A4; ","; ; ; ; "").

Aparecen columnas vacías

Por qué ocurre: Dos delimitadores seguidos en el origen producen un trozo vacío.

Cómo resolverlo: Pon VERDADERO en ignorar_vacío para omitirlos.

#¿NOMBRE?

Por qué ocurre: DIVIDIRTEXTO es más reciente que el resto de la familia de matrices dinámicas: no llegó hasta 2022.

Cómo resolverlo: Necesita un Microsoft 365 actual. Excel 2021 tiene FILTRAR y UNICOS pero no DIVIDIRTEXTO; allí usa Texto en columnas o IZQUIERDA/EXTRAE/ENCONTRAR.

Consejos que conviene saber

  • TEXTOANTES y TEXTODESPUES son mejor opción cuando solo quieres un trozo y no todos.
  • Divide por un salto de línea usando CARACTER(10) como delimitador para desplegar una celda de varias líneas.
  • Envuélvela en ESPACIOS para limpiar los espacios alrededor de los trozos: =ESPACIOS(DIVIDIRTEXTO(A2; ",")).
  • Pásale una columna entera y dividirá todas las filas a la vez, produciendo una tabla completa desde una sola fórmula.

Preguntas frecuentes

¿En qué se diferencia de Texto en columnas?

Texto en columnas es una acción puntual que sobrescribe celdas y hay que repetir cada vez que llegan datos nuevos. DIVIDIRTEXTO es una fórmula que se recalcula sola y deja el origen intacto. Para una importación semanal, significa configurarlo una vez en lugar de cada semana.

¿Puede dividir por más de un delimitador?

Sí. Pásale una constante matricial como delimitador: =DIVIDIRTEXTO(A2; {","\";"\"|"}) divide por cualquiera de los tres, algo útil con exportaciones desordenadas.

¿Cómo divido un nombre completo en nombre y apellido?

=DIVIDIRTEXTO(A2; " ") da las dos partes en celdas contiguas. Si solo quieres una, TEXTOANTES(A2; " ") y TEXTODESPUES(A2; " ") son más claras, y TEXTODESPUES gestiona mejor los nombres compuestos si le pasas -1 como número de instancia para tomar el último espacio.

Funciones relacionadas

Guías que la usan

Lecturas más largas donde esta función hace trabajo real en una hoja real.