Fórmula genérica
=SUM(--(LEN(UNIQUE(FILTER(range,criteria,"")))>0))
Resumen
Para contar valores únicos con una o más condiciones, puede usar una fórmula basada en UNIQUE y FILTER. En el ejemplo que se muestra, la fórmula en H7 es:
=SUM(--(LEN(UNIQUE(FILTER(B6:B15,C6:C15=H6,"")))>0))
que devuelve 3, ya que hay tres nombres únicos en B6: B15 asociados con el proyecto Omega.
Nota: esta fórmula requiere fórmulas de matriz dinámica, disponibles solo en Excel 365. Con una versión anterior de Excel, puede utilizar fórmulas alternativas más complejas.
Explicación
Básicamente, esta fórmula usa la función ÚNICA para extraer valores únicos, y la función FILTRO aplica criterios.
Trabajando de adentro hacia afuera, la función FILTRO se usa para aplicar criterios y extraer solo los nombres que están asociados con el proyecto "Omega":
FILTER(B6:B15,C6:C15=H6) // Omega names only
El resultado de FILTER es una matriz como esta:
("Jim";"Jim";"Carl";"Sue";"Carl")
A continuación, la función ÚNICA se utiliza para eliminar duplicados:
UNIQUE(("Jim";"Jim";"Carl";"Sue";"Carl"))
lo que da como resultado una nueva matriz como esta:
("Jim";"Carl";"Sue") // after UNIQUE
En este punto, tenemos una lista única de nombres asociados con Omega, y solo necesitamos contarlos. Por las razones que se explican a continuación, hacemos esto con la función LEN y la función SUMA. Para aclarar las cosas, primero reescribiremos la fórmula para incluir la lista única:
=SUM(--(LEN(("Jim";"Carl";"Sue"))>0))
La función LEN obtiene la longitud de cada elemento de la lista y devuelve una matriz de longitudes:
LEN(("Jim";"Carl";"Sue")) // returns (3;4;3)
A continuación, comprobamos si las longitudes son mayores que cero:
LEN((3;4;3)>0 // returns (TRUE;TRUE;TRUE)
Y use un doble negativo para coaccionar los valores VERDADERO y FALSO a 1 y 0:
--((TRUE;TRUE;TRUE)) // returns (1;1;1)
Finalmente, sumamos los resultados con la función SUMA:
=SUM((1;1;1)) // returns 3
Esta matriz se envía directamente a la función CONTAR, que devuelve un recuento final:
=COUNTA(("Jim";"Carl";"Sue")) // returns 3
Tenga en cuenta que debido a que estamos verificando la longitud de cada artículo devuelto por UNIQUE, las celdas en blanco o vacías que cumplen con los criterios se ignoran. Esta fórmula es dinámica y se recalculará inmediatamente si se cambian los datos de origen.
Cuente único con múltiples criterios
Para contar valores únicos basados en múltiples criterios, puede extender la lógica "incluir" dentro de FILTER. Por ejemplo, para contar nombres únicos para el proyecto Omega solo en junio, use:
=SUM(--(LEN(UNIQUE(FILTER(B6:B15,(C6:C15=H6)*(D6:D15="june"))))>0))
Este es un ejemplo del uso de lógica booleana para aplicar más de una condición. El enfoque se explica con más detalle aquí.
Para obtener más detalles, vea este video de capacitación: Cómo filtrar con varios criterios.
CONTAR
Es posible escribir una fórmula más simple que responda en la función CONTAR. Sin embargo, una advertencia importante es que COUNTA devolverá 1 cuando no haya valores coincidentes. Esto se debe a que la función FILTRO devuelve un error cuando ningún dato coincide con los criterios y este error termina siendo contado por la función CONTAR. La fórmula básica de COUNTA se ve así:
=COUNTA(UNIQUE(FILTER(B6:B15,C6:C15=H6)))
Nuevamente, esta fórmula devolverá 1 cuando no haya datos coincidentes. También incluirá celdas vacías que cumplan con los criterios. La fórmula basada en LEN y SUM es una mejor opción.
Sin matrices dinámicas
Si está usando una versión anterior de Excel sin soporte de matriz dinámica, puede usar una fórmula más compleja. Para obtener una descripción más general de las alternativas de matriz dinámica, consulte: Alternativas a fórmulas de matriz dinámica.