Fórmula genérica
(=SUM(--(FREQUENCY(IF(criteria,values),values)>0)))
Resumen
Para contar valores numéricos únicos en un rango, puede usar una fórmula basada en las funciones FRECUENCIA, SUMA e SI. En el ejemplo que se muestra, los números de empleado aparecen en el rango B5: B14. La fórmula en G6 es:
=SUM(--(FREQUENCY(IF(C5:C14="A",B5:B14),B5:B14)>0))
que devuelve 2, ya que hay 2 ID de empleado únicos en el edificio A.
Nota: esta es una fórmula de matriz y debe ingresarse con control + shift + enter, a menos que esté usando Excel 365.
Explicación
Nota: antes de Excel 365, Excel no tenía una función dedicada para contar valores únicos. Esta fórmula muestra una forma de contar valores únicos, siempre que sean numéricos. Si tiene valores de texto o una combinación de texto y números, deberá utilizar una fórmula más complicada.
La función FREQUENCY de Excel devuelve una distribución de frecuencia, que es una tabla de resumen que contiene la frecuencia de valores numéricos, organizados en "bins". Lo usamos aquí como una forma indirecta de contar valores numéricos únicos. Para aplicar criterios, usamos la función SI.
Trabajando de adentro hacia afuera, primero filtramos valores con la función SI:
IF(C5:C14="A",B5:B14) // filter on building A
El resultado de esta operación es una matriz como esta:
(905;905;905;905;773;773;FALSE;FALSE;FALSE;FALSE)
Observe que todos los identificadores del edificio B ahora son FALSOS. Esta matriz se envía directamente a la función FREQUENCY como data_array . Para bins_array , proporcionamos los propios identificadores:
FREQUENCY((905;905;905;905;773;773;FALSE;FALSE;FALSE;FALSE),(905;905;905;905;773;773;801;963;963;963))
Con esta configuración, FREQUENCY devuelve la siguiente matriz:
(4;0;0;0;2;0;0;0;0;0;0)
El resultado es un poco críptico, pero el significado es 905 aparece cuatro veces y 773 aparece dos veces. Los valores FALSE se ignoran automáticamente.
FREQUENCY tiene una función especial que devuelve automáticamente cero para cualquier número que ya haya aparecido en la matriz de datos, por lo que los valores son cero una vez que se ha encontrado un número. Esta es la característica que permite que este enfoque funcione.
A continuación, se prueba que cada uno de estos valores sea mayor que cero:
(4;0;0;0;2;0;0;0;0;0;0)>0
El resultado es una matriz como esta:
(TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE)
Cada VERDADERO en la lista representa un número único en la lista, y solo necesitamos sumar los valores VERDADEROS con SUMA. Sin embargo, SUM no sumará valores lógicos en una matriz, por lo que primero debemos convertir los valores en 1 o cero. Esto se hace con el doble negativo (-). El resultado es una matriz de solo unos o ceros:
(1;0;0;0;1;0;0;0;0;0;0)
Finalmente, SUM suma estos valores y devuelve el total, que en este caso es 2.
Varios criterios
Puede extender la fórmula para manejar múltiples criterios como este:
(=SUM(--(FREQUENCY(IF((criteria1)*(criteria2),values),values)>0)))