Juntar valores únicos entre comillas: UNICOS va antes de unir, y el espacio que no se ve también cuenta

Juan llegó al grupo con una duda que, en sus palabras, creía sencilla y no le salía. Tres celdas con nombres y un resultado esperado muy concreto:

| Celda | Valor |
|---|---|
| J9 | Juan |
| J10 | Juan |
| J11 | Maria |

Lo que quería obtener, en una sola celda, era cada nombre una vez, entre comillas dobles y separados por punto y coma:

``
"Juan";"Maria"
`

Su fórmula parecía razonable: unir los nombres con sus comillas y quitar los repetidos.

`
=+UNICOS(UNIRCADENAS(";";VERDADERO;""""&J9:J11&""""))
`

Pero devolvía los tres, Juan repetido incluido: "Juan ";"Juan ";"Maria". Miki dio con la causa en una línea: el UNICOS hay que aplicarlo a la matriz, no a la cadena de texto ya generada. UNIRCADENAS devuelve un único texto, y en un único valor no hay nada repetido que quitar. El orden correcto es el contrario: primero los únicos, después la unión.

Y había un segundo detalle, más escondido. En el fichero, los dos Juan llevan un espacio al final. Aquí no molesta para quitar el duplicado, porque los dos lo llevan igual, pero sí se cuela en el resultado: "Juan " en lugar de "Juan". Ahí entra ESPACIOS.

Lo que devuelve cada fórmula

En el hilo salieron siete fórmulas y nadie las ejecutó delante de todos, así que las hemos probado sobre el fichero de Juan en Excel en español:

| Fórmula | Resultado |
|---|---|
| Juan (la original) | "Juan ";"Juan ";"Maria" |
| Miki y John: MATRIZATEXTO + UNICOS | "Juan "; "Maria" |
| John, con ESPACIOS | "Juan"; "Maria" |
| John, con TEXTO | "Juan "; "Maria" |
| Andrés: UNIRCADENAS + UNICOS + ESPACIOS | "Juan";"Maria" |
| Nacho: las comillas en el delimitador | "Juan ","Juan ","Maria" |

La que da exactamente lo que pedía Juan es la de Andrés:

`
=UNIRCADENAS(";";VERDADERO;""""&UNICOS(ESPACIOS(J9:J11))&"""")
`

Se lee de dentro afuera: ESPACIOS limpia cada nombre, UNICOS se queda con uno de cada, se le pegan las comillas a cada elemento y UNIRCADENAS los junta con ;.

Las otras, y lo que enseña cada una

MATRIZATEXTO (Miki y John) es la forma más corta de convertir una matriz en texto, pero su separador no se elige: en Excel en español pone punto y coma y un espacio. Si te vale "Juan"; "Maria", la versión de John con ESPACIOS es la más limpia:

`
=MATRIZATEXTO(UNICOS(""""&ESPACIOS(J9:J11)&""""))
`

La de TEXTO, que John propuso «solo por diversión», es la que más preguntas levantó. Hugo le preguntó directamente qué hacía ahí TEXTO:

`
=MATRIZATEXTO(UNICOS(TEXTO(J9:J11;"\""@\""")))
`

Es un formato personalizado dentro de una fórmula. En el formato, @ representa el texto de la celda, y las comillas que lo rodean se escapan con la barra invertida para que Excel las pinte en vez de interpretarlas. El resultado es cada nombre entre comillas, sin concatenar nada a mano.

La de Nacho va por otro lado, «para los que les gusta contar paréntesis y dobles comillas»: en vez de pegar comillas a cada elemento, las mete en el delimitador, y así solo hace falta poner una al principio y otra al final.

`
="""" & UNIRCADENAS(""",""";;J9:J11) & """"
`

Tal como la escribió no aplica UNICOS y separa con coma, pero la idea combina perfectamente con la de Andrés. Probada también:

`
="""" & UNIRCADENAS(""";""";;UNICOS(ESPACIOS(J9:J11))) & """"
`

Devuelve "Juan";"Maria". Hugo había ido por la misma idea con una matriz de delimitadores; tal como llegó al grupo, alterna dos separadores distintos y no llega al formato pedido.

El orden de ESPACIOS también importa

En el fichero de Juan da igual limpiar antes o después de UNICOS, porque los dos Juan tienen el mismo espacio. Pero basta con que uno lo lleve y el otro no para ver la diferencia. Con Juan en J9 y Juan en J10:

| Fórmula | Resultado |
|---|---|
| UNICOS(ESPACIOS(J9:J11)) | "Juan";"Maria" |
| ESPACIOS(UNICOS(J9:J11)) | "Juan";"Juan";"Maria" |

Para UNICOS, Juan y Juan son dos valores distintos. Primero se limpia, después se quitan los repetidos, y lo último es unir. Es la misma regla que el error original de Juan, aplicada un paso antes.

Un último apunte: UNICOS no distingue mayúsculas. Juan, JUAN y juan` cuentan como uno solo.

Juntar una lista en una sola celda, cada valor entre comillas y sin repetidos, es de esas tareas que parecen de un minuto. Sale a menudo al preparar un listado para pegarlo en otra herramienta, en un filtro o en un correo. Y tiene una trampa de orden en la que es muy fácil caer: aplicar UNICOS cuando ya es tarde.

El problema

Juan, miembro de la comunidad de InflueXcel, tenía tres celdas: Juan dos veces (con un espacio al final) y Maria. Quería obtener en una sola celda "Juan";"Maria": cada nombre una vez, entre comillas dobles y separado por punto y coma.

Su fórmula unía primero y quitaba repetidos después:

=+UNICOS(UNIRCADENAS(";";VERDADERO;""""&J9:J11&""""))

El resultado incluía a Juan dos veces. La razón: UNIRCADENAS devuelve un único texto, y UNICOS sobre un único valor no tiene nada que quitar. El segundo problema estaba escondido en los datos: el espacio final de Juan acababa dentro de las comillas.

Solución paso a paso

1. Primero los únicos, después la unión

La fórmula que devuelve exactamente lo pedido la aportó Andrés:

=UNIRCADENAS(";";VERDADERO;""""&UNICOS(ESPACIOS(J9:J11))&"""")

Se lee de dentro afuera. ESPACIOS limpia cada nombre. UNICOS se queda con uno de cada. A cada elemento se le pegan las comillas, que en una fórmula se escriben como cuatro comillas seguidas. Y UNIRCADENAS junta el resultado con ;, ignorando las celdas vacías gracias al VERDADERO.

2. La versión corta con MATRIZATEXTO

MATRIZATEXTO convierte una matriz en texto sin tener que elegir delimitador:

=MATRIZATEXTO(UNICOS(""""&ESPACIOS(J9:J11)&""""))

Es más corta, pero el separador lo pone Excel: en español, punto y coma seguido de un espacio. Si ese espacio no te molesta, es la opción más legible.

3. Las comillas dentro del delimitador

Otro enfoque es meter las comillas en el propio delimitador de UNIRCADENAS. Así solo hay que añadir una al principio y otra al final:

="""" & UNIRCADENAS(""";""";;UNICOS(ESPACIOS(J9:J11))) & """"

Devuelve también "Juan";"Maria".

4. Un formato personalizado dentro de TEXTO

La más curiosa del hilo usa TEXTO con un formato personalizado:

=MATRIZATEXTO(UNICOS(TEXTO(J9:J11;"\""@\""")))

En un formato personalizado, @ representa el texto de la celda. Las comillas que lo rodean se escapan con la barra invertida para que Excel las muestre como caracteres normales. Es la misma lógica que usarías en Formato de celdas, pero aplicada dentro de una fórmula.

El orden de ESPACIOS también cuenta

Si un nombre lleva espacio final y otro no, UNICOS los ve como dos valores distintos. Por eso hay que limpiar antes de quitar repetidos: UNICOS(ESPACIOS(rango)) deja un solo Juan, mientras que ESPACIOS(UNICOS(rango)) deja dos. El orden correcto es siempre limpiar, quitar repetidos y unir.

Además, UNICOS no distingue mayúsculas de minúsculas: Juan, JUAN y juan cuentan como uno.

Funciones clave

  • UNICOS: devuelve los valores distintos de una matriz. Tiene que recibir la matriz, no un texto ya unido.
  • ESPACIOS: quita los espacios del principio y del final, y deja uno solo entre palabras. Imprescindible antes de comparar textos.
  • UNIRCADENAS: une una matriz con el delimitador que elijas y puede ignorar los vacíos.
  • MATRIZATEXTO: convierte una matriz en texto con el separador de lista de Excel.
  • TEXTO: aplica un formato de número o de texto a un valor, incluidos los formatos personalizados con @.

Conclusión

Un fallo pequeño con una lección que sirve en muchas otras fórmulas: el orden de las funciones importa tanto como las funciones en sí. Juan lo planteó con su fichero en el grupo de WhatsApp de InflueXcel, y entre Miki, Andrés, John, Hugo y Nacho salieron cinco maneras de resolverlo, todas probadas en Excel. Descarga el fichero y prueba cada una sobre tus propios datos.

Más casos con estas funciones

Más contenido de Excel en InflueXcel