🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Función TEXTJOIN en Excel — Unir todo un rango con un separador (e ignorar los vacíos)

|

Función TEXTJOIN en Excel — Unir todo un rango con un separador (e ignorar los vacíos)

ResumenTEXTJOIN pega un rango de valores en una sola cadena, pone un separador entre ellos y —esta es la parte que casi todos pasan por alto— ignora las celdas vacías por ti. Sintaxis: =TEXTJOIN(separador; ignorar_vacío; texto1; …). El segundo argumento es todo el asunto: VERDADERO salta los vacíos para no producir nunca "Ana; ; ; Ben"; FALSO conserva los huecos. Un límite que conviene saber: el resultado no puede superar los 32 767 caracteres (una celda) o te sale #VALUE!. Disponible en Excel 365 y 2019+.

=TEXTJOIN("; ", VERDADERO, A2:A100)
=TEXTJOIN(" | ", VERDADERO, FILTER(Email, Estado = "Activo"))

Durante años, convertir una columna de nombres en "Ana; Ben; Carla" significaba una cadena de A2 & "; " & A3 & "; " & A4 … que se rompía en cuanto una celda estaba vacía (un ; ; suelto) o alguien insertaba una fila. TEXTJOIN sustituye toda la cadena por una expresión: un rango, un separador y un interruptor para los vacíos. Es la función para el caso «una celda contiene una lista».

Nota: en una interfaz de Excel en español estas funciones se llaman UNIRCADENAS (TEXTJOIN), DIVIDIRTEXTO (TEXTSPLIT), CONCAT (CONCAT) y CONCATENAR (el antiguo CONCATENATE). Las fórmulas de abajo usan los nombres en inglés; el comportamiento es idéntico.

Lo que aprenderás

  • Por qué ignorar_vacío —y no el separador— es el argumento que importa
  • El límite de 32 767 caracteres y el #VALUE! que provoca
  • Cuándo TEXTJOIN gana a CONCAT, CONCATENAR y el operador &
  • Cómo unir un resultado derramado (FILTER, UNIQUE) en una sola celda
  • El truco del separador que casi nadie prueba: una matriz de separadores

El modelo mental: una pistola de pegamento con separador

El operador & y el viejo CONCATENAR pegan dos cosas a la vez, y tú tecleas el separador a mano entre cada par. TEXTJOIN es una pistola de pegamento: la cargas con un separador, apuntas a todo un rango y coloca el separador automáticamente entre los valores —y solo entre ellos, nunca al final—. Esa única diferencia explica por qué existe TEXTJOIN y por qué se lee mucho más limpio:

' La forma antigua — separador repetido a mano, se rompe con una celda vacía:
=A2 & "; " & A3 & "; " & A4 & "; " & A5

' TEXTJOIN — un separador, un rango:
=TEXTJOIN("; ", VERDADERO, A2:A5)

La regla que lo desbloquea todo: ignorar_vacío es el meollo

Esta es la queja número uno, «mi lista está llena de puntos y comas», y no es un problema del separador: es el segundo argumento. ignorar_vacío decide qué pasa con las celdas vacías:

' A3 y A5 están vacías:
=TEXTJOIN("; ", VERDADERO, A2:A6)   ' -> "Ana; Ben; Carla"        (vacíos saltados)
=TEXTJOIN("; ", FALSO,     A2:A6)   ' -> "Ana; ; Ben; ; Carla"    (vacíos conservados)

VERDADERO es lo que quieres el 95 % de las veces: una lista limpia, sin separadores dobles, sin punto y coma al principio ni al final. FALSO es la opción más rara y deliberada —cuando cada posición debe alinearse con algo más (un registro de ancho fijo, una plantilla donde el campo 3 sigue siendo el campo 3 aun vacío)—. & y CONCATENAR se sienten tan frágiles porque no tienen equivalente de este interruptor: cada celda vacía se vuelve un hueco visible que limpias después.

El límite que nadie menciona: 32 767 caracteres

Un resultado de TEXTJOIN vive en una celda, y una celda admite como mucho 32 767 caracteres. Une una columna larga y puedes pasarte de ese límite —entonces Excel devuelve #VALUE!, no una cadena recortada—:

=TEXTJOIN(";", VERDADERO, A:A)    ' -> #VALUE! si el texto unido supera 32 767 caracteres

Si lo alcanzas, casi siempre estás construyendo lo que no debes —una sola celda rara vez es el sitio correcto para decenas de miles de caracteres—. Une un rango acotado (A2:A500) o replantéate si el dato cabe en una única celda.

Unir una matriz derramada en una sola celda

Aquí es donde TEXTJOIN se gana su sitio en el Excel moderno. Las funciones de matriz dinámica —FILTER, UNIQUE, SORTderraman sus resultados por muchas celdas. A veces quieres lo contrario: plegar ese derrame en una cadena legible (una celda de resumen, una línea «Para» de un correo, una fila de CSV). TEXTJOIN toma una matriz directamente, así que las anidas:

' El correo de cada cliente activo, sin duplicados, en una celda:
=TEXTJOIN("; ", VERDADERO, UNIQUE(FILTER(Email, Estado = "Activo")))

Sin rango de derrame que gestionar, sin columna auxiliar —las funciones internas producen la matriz, TEXTJOIN la aplana—. El separador puede incluso ser una matriz de separadores ({"; "; " y "}) si el último elemento debe unirse distinto: un truco que casi ningún tutorial muestra.

El criterio: ¿TEXTJOIN, CONCAT o &?

Usa & solo para pegar dos o tres cosas conocidas (Nombre & " " & Apellido). En cuanto unes un rango o una lista, la pregunta se reduce a: ¿necesitas un separador o saltar vacíos? Si sí —y casi siempre lo es— usa TEXTJOIN. Recurre a CONCAT solo cuando de verdad no quieras ningún separador ni ningún salto de vacíos; en cuanto te ves añadiendo & o SUSTITUIR para fingir un separador, querías TEXTJOIN desde el principio.

Cómo ayuda ExcelMaster

Mucho trabajo con TEXTJOIN es en realidad «convierte esta columna en una cadena que pego en otro sitio»: los correos de todos los morosos, separados por punto y coma. ExcelMaster escribe esa fórmula a partir de una petición en lenguaje natural —con el interruptor ignorar_vacío y cualquier FILTER/UNIQUE que alimente la unión— y coloca el resultado donde quieras. Tú describes la lista; él se encarga de la unión.

Preguntas frecuentes

¿Cómo uno celdas con una coma en Excel?

Usa =TEXTJOIN(", "; VERDADERO; A2:A100). El primer argumento es el separador, el segundo (VERDADERO) salta las celdas vacías y el tercero es el rango. La coma y el espacio aparecen solo entre valores, nunca al final.

¿Cómo hago que TEXTJOIN ignore las celdas vacías?

Pon el segundo argumento en VERDADERO: =TEXTJOIN("; "; VERDADERO; rango). Con FALSO, cada celda vacía se vuelve un hueco vacío y obtienes separadores dobles como "a; ; b".

¿Por qué TEXTJOIN devuelve #VALUE!?

La causa más común es el límite de 32 767 caracteres —una celda no admite más, así que una unión de demasiados valores se desborda—. Une un rango más pequeño, o reconsidera si el dato debe vivir en una sola celda.

TEXTJOIN frente a CONCATENAR, ¿qué diferencia hay?

CONCATENAR (y &) pegan valores sin separador y sin forma de saltar vacíos, y CONCATENAR no toma un rango entero —listas las celdas una a una—. TEXTJOIN toma un rango o matriz, inserta un separador automáticamente y salta vacíos a petición. Para listas, TEXTJOIN gana siempre.

¿Funciona TEXTJOIN en Excel 2016?

No. TEXTJOIN llegó con Excel 2019 y Excel 365. En 2016 vuelves a & o CONCATENAR con separadores manuales.

Probado en

Probado en: Excel 365 (Windows 11) — última verificación 17-06-2026.

Guías relacionadas: Excel TEXTSPLIT · Excel CONCAT · Excel FILTER · VBA Concatenar