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

Cómo contar valores únicos en Excel — la forma moderna y la fórmula clásica

|

Cómo contar valores únicos en Excel — la forma moderna y la fórmula clásica

En resumen — Excel no tiene una función COUNTUNIQUE, así que "¿cuántos valores diferentes hay aquí?" tiene dos respuestas. Moderna (365/2021): =COUNTA(UNIQUE(range)) — despliega los valores distintos y luego cuéntalos. Clásica (versiones antiguas): =SUMPRODUCT(1/COUNTIF(range, range)) — un ingenioso truco matricial. Ambas comparten una trampa: una celda en blanco descuadra el recuento, y cada una falla de forma distinta.

=COUNTA(UNIQUE(A2:A100))                          ' moderna: recuento de distintos
=COUNTA(UNIQUE(FILTER(A2:A100, A2:A100<>"")))     ' moderna, sin blancos
=SUMPRODUCT(1/COUNTIF(A2:A100, A2:A100))          ' clásica (falla con blancos)
=SUMPRODUCT((A2:A100<>"")/COUNTIF(A2:A100, A2:A100&""))  ' clásica, a prueba de blancos

"Contar los valores distintos" es una de las tareas reales más comunes en Excel y una de las pocas sin función propia — que es precisamente por lo que merece la pena entender por qué funciona cada enfoque, no solo pegarlo.

Lo que vas a aprender

  • Por qué no hay una única función para "contar únicos" — y las dos eras de respuestas
  • El patrón moderno COUNTA(UNIQUE()) y su trampa con las celdas en blanco
  • El truco clásico SUMPRODUCT(1/COUNTIF()) — y por qué funciona
  • Cómo evitar que los blancos sumen 1 a tu recuento sin avisar
  • "Valores distintos" frente a "valores que aparecen exactamente una vez" — una confusión habitual

Nota — nombres de funciones en español: en la versión española de Excel estas funciones se llaman CONTARA (COUNTA), UNICOS (UNIQUE), FILTRAR (FILTER), SUMAPRODUCTO (SUMPRODUCT) y CONTAR.SI (COUNTIF). En los ejemplos usamos los nombres en inglés dentro de las fórmulas; tú puedes teclear el nombre en español y Excel lo entenderá igual.

El modelo mental: no existe COUNTUNIQUE — la compones tú

La razón por la que esta tarea resulta incómoda es que buscas una función que no existe. Excel te da piezas en su lugar, y tú ensamblas la respuesta. Hay dos montajes, y cuál usas depende por completo de tu versión de Excel:

  • Moderna (365, 2021): obtén la lista de distintos y luego cuéntala. UNIQUE (UNICOS) devuelve los distintos valores como una matriz desbordada; COUNTA cuenta cuántos han vuelto. Legible, y se recalcula en vivo según cambian los datos.
  • Clásica (2019 y anteriores): sin UNIQUE, así que usas una sola fórmula matricial, SUMPRODUCT(1/COUNTIF(range,range)), que cuenta los valores distintos sin llegar a listarlos.

Si estás en una versión moderna, usa el patrón moderno — es más claro y puedes ver cómo se despliegan los valores distintos, lo que hace que depurar sea trivial. Echa mano de la fórmula clásica solo cuando tengas que dar soporte a un archivo antiguo.

La forma moderna — y el blanco que suma 1

=COUNTA(UNIQUE(A2:A100))

UNIQUE despliega los valores distintos; COUNTA los cuenta. Limpio — hasta que hay una celda vacía en el rango. UNIQUE trata el blanco como un valor: devuelve un 0 (su representación de una celda vacía) como una de las entradas distintas, así que tu recuento vuelve uno más alto que el número de valores reales. Esta es la razón número uno de que un recuento de únicos "salga uno de más".

La solución es quitar los blancos antes de contar, con FILTER (FILTRAR):

=COUNTA(UNIQUE(FILTER(A2:A100, A2:A100<>"")))

FILTER conserva solo las celdas no vacías, UNIQUE elimina duplicados y COUNTA cuenta. Esta forma anidada — filtrar, deduplicar, contar — es la que hay que memorizar, porque las columnas reales casi siempre tienen blancos al final. Si FILTER no encuentra nada, devuelve #CALC!, así que añade FILTER(..., ..., "") como valor de reserva vacío si el rango puede quedar totalmente vacío.

La forma clásica — y por qué el truco funciona de verdad

En las versiones antiguas, la fórmula canónica es:

=SUMPRODUCT(1/COUNTIF(A2:A100, A2:A100))

Parece magia, pero la lógica merece entenderse porque es la clave para arreglar su bug. COUNTIF(range, range) devuelve una matriz — para cada celda, cuántas veces aparece su valor en el rango. Si "West" aparece 4 veces, cada una de esas cuatro celdas produce un 4. Toma 1/eso, y cada celda "West" aporta 1/4. Cuatro celdas × ¼ = 1. Cada valor distinto, se repita las veces que se repita, suma exactamente 1 — así que el total general es el número de valores distintos. Entiende eso y no tendrás que memorizarlo nunca.

La pega: si alguna celda está en blanco, COUNTIF devuelve 0 para ella, obtienes 1/0, y todo se derrumba en #DIV/0! (#¡DIV/0!). La versión a prueba de blancos neutraliza tanto la división como la aportación del blanco:

=SUMPRODUCT((A2:A100<>"")/COUNTIF(A2:A100, A2:A100&""))

El &"" hace que COUNTIF cuente los blancos como una cadena vacía coincidente (así no hay divisor cero), y (A2:A100<>"") pone un 0 en el numerador de las celdas en blanco para que no aporten nada. Es la misma idea que la solución moderna con FILTER, expresada en el vocabulario matricial más antiguo. (Para más sobre este patrón de suma de matrices, consulta SUMPRODUCT.)

Valores distintos frente a valores que aparecen una sola vez

Suenan igual y no lo son — confundirlos es la respuesta equivocada silenciosa más habitual de todo este tema:

  • Recuento de distintos — cuántos valores diferentes existen. {A, A, B}2. Es todo lo anterior.
  • Recuento de valores que aparecen exactamente una vez — cuántos valores no se repiten. {A, A, B}1 (solo B). Pregunta distinta, fórmula distinta:
=SUMPRODUCT(--(COUNTIF(A2:A100, A2:A100)=1))   ' valores que aparecen exactamente una vez
=ROWS(UNIQUE(A2:A100, , TRUE))                 ' moderna: el tercer argumento de UNIQUE

El tercer argumento de UNIQUE (exactly_once = TRUE) devuelve solo los valores que aparecen una única vez — no la lista de distintos. Si quieres "cuántos clientes diferentes", eso es el UNIQUE por defecto; si quieres "cuántos clientes pidieron una sola vez", eso es exactly_once. Echa mano del equivocado y tu recuento estará mal de forma plausible y silenciosa.

La decisión de criterio

En un Excel moderno, la respuesta es siempre =COUNTA(UNIQUE(FILTER(range, range<>""))) — filtra blancos, deduplica, cuenta — porque es legible, autodepurable (puedes ver el desbordamiento) y a prueba de blancos. Guarda el truco SUMPRODUCT(1/COUNTIF()) en el bolsillo solo para archivos heredados, y siempre en su forma a prueba de blancos con &"". Sobre todo, ten claro qué pregunta estás respondiendo: "cuántos valores diferentes" y "cuántos valores aparecen una vez" parecen idénticas en una frase y producen números distintos en la hoja.

Cómo ayuda ExcelMaster

Las fórmulas de recuento de distintos son fáciles de equivocar por poco — un desajuste de uno por un blanco final, un #DIV/0! del truco clásico, o la confusión distinto-frente-a-una-vez que ningún error señala jamás. ExcelMaster comprueba tu versión de Excel, elige el moderno COUNTA(UNIQUE(FILTER(...))) o la fórmula clásica a prueba de blancos según corresponda, y — lo crucial — confirma a qué pregunta te refieres antes de escribir nada: valores distintos, o valores que aparecen exactamente una vez. Di "cuenta los clientes distintos, ignorando los blancos", y devuelve una fórmula correcta para tu versión y tu intención.

Preguntas frecuentes

¿Cómo cuento los valores únicos en Excel?

En Excel 365 o 2021, usa =COUNTA(UNIQUE(range)), o =COUNTA(UNIQUE(FILTER(range, range<>""))) para ignorar las celdas en blanco. En versiones antiguas, usa la fórmula matricial =SUMPRODUCT((range<>"")/COUNTIF(range, range&"")), que cuenta los valores distintos sin llegar a listarlos.

¿Existe una función COUNTUNIQUE en Excel?

No. Excel no tiene una única función para "contar únicos". La compones tú: UNIQUE

  • COUNTA en las versiones modernas, o SUMPRODUCT(1/COUNTIF(...)) en las antiguas. Una tabla dinámica también puede mostrar un "recuento distinto" para un análisis puntual.

¿Cómo cuento valores únicos en versiones antiguas de Excel sin UNIQUE?

Usa =SUMPRODUCT(1/COUNTIF(range, range)). Cada valor que aparece n veces aporta n × (1/n) = 1, así que el total es el número de valores distintos. Si el rango tiene blancos, usa la forma a prueba de blancos =SUMPRODUCT((range<>"")/COUNTIF(range, range&"")) para evitar un error #DIV/0!.

¿Por qué mi recuento de únicos sale uno de más?

Una celda en blanco del rango se está contando como un valor. UNIQUE devuelve una celda vacía como 0, sumando 1 al recuento de distintos. Excluye los blancos con =COUNTA(UNIQUE(FILTER(range, range<>""))).

¿Cuál es la diferencia entre contar valores distintos y valores que aparecen una sola vez?

El recuento de distintos trata {A, A, B} como 2 (dos valores diferentes). Contar los valores que aparecen exactamente una vez lo trata como 1 (solo B no se repite). Usa UNIQUE por defecto para los distintos; usa UNIQUE(range,,TRUE) o SUMPRODUCT(--(COUNTIF(range,range)=1)) para los valores que aparecen una vez.

Probado en

Probado en: Excel 365 (Windows 11) — última verificación el 07/07/2026.

Guías relacionadas: Función UNIQUE de Excel · Excel COUNTIF · COUNT, COUNTA y COUNTBLANK · Función FILTER de Excel