Excel formula: Count unique text values in a range

Fórmula genérica

=SUMAPRODUCTO(--(FRECUENCIA(COINCIDIR(data,data,0),FILA(data)-FILA(data.firstcell)+1)>0))

Explicación

Para contar valores de texto únicos en un rango, puede usar una fórmula que use varias funciones: FRECUENCIA, COINCIDIR, FILA y SUMPRODUCT. En el ejemplo que se muestra, la fórmula en F5 es:
=SUMAPRODUCTO(--(FRECUENCIA(COINCIDIR(B5:B14,B5:B14,0),FILA(B5:B14)-FILA(B5)+1)>0))
que devuelve 4, ya que hay 4 nombres únicos en B5: B14.
Nota: Otra forma de contar valores únicos es usar la función CONTAR.SI. Esta es una fórmula mucho más simple, pero puede ejecutarse lentamente en grandes conjuntos de datos. Con Excel 365, puede usar una fórmula más simple y rápida basada en UNICOS.

Cómo funciona esta fórmula

Esta fórmula es más complicada que una fórmula similar que usa FRECUENCIA para contar valores numéricos únicos porque FRECUENCIA no funciona con valores no numéricos. Como resultado, una gran parte de la fórmula simplemente transforma los datos no numéricos en datos numéricos que FRECUENCIA puede manejar.
Trabajando de adentro hacia afuera, la función COINCIDIR se usa para obtener la posición de cada elemento que aparece en los datos:
COINCIDIR(B5:B14,B5:B14,0)
El resultado de COINCIDIR es una matriz como esta:
{1;1;1;4;4;6;6;6;9;9}
Como COINCIDIR siempre devuelve la posición de la primera coincidencia, los valores que aparecen más de una vez en los datos devuelven la misma posición. Por ejemplo, porque "Jim" aparece 3 veces en la lista, aparece en esta matriz 3 veces como el número 1.
Esta matriz se alimenta a FRECUENCIA como el argumento data_array. El argumento bins_array se construye a partir de esta parte de la fórmula:
FILA(B5:B14)-FILA(B5)+1)
que crea una lista secuencial de números para cada valor en los datos:
{1;2;3;4;5;6;7;8;9;10}
En este punto, FRECUENCIA se configura así:
FRECUENCIA({1;1;1;4;4;6;6;6;9;9},{1;2;3;4;5;6;7;8;9;10})
FRECUENCIA devuelve un conjunto de números que indican un recuento para cada número en el conjunto de datos, organizado por bin. Cuando ya se ha contado un número, FRECUENCIA devolverá cero. Esta es una característica clave en el funcionamiento de esta fórmula. El resultado de FRECUENCIA es una matriz como esta:
{3;0;0;2;0;3;0;0;2;0;0} // output from FREQUENCY
Nota: FRECUENCIA siempre devuelve una matriz con un elemento más que bins_array.
Ahora podemos reescribir la fórmula de esta manera:
=SUMAPRODUCTO(--({3;0;0;2;0;3;0;0;2;0;0}>0))
Luego, verificamos valores mayores que cero (> 0), que convierte los números a VERDADERO o FALSO, luego usamos un doble negativo (-) para convertir los valores de VERDADERO y FALSO a 1s y 0s. Ahora tenemos:
=SUMAPRODUCTO({1;0;0;1;0;1;0;0;1;0;0})
Finalmente, SUMAPRODUCTO simplemente suma los números y devuelve el total, que en este caso es 4.

Manejo de celdas en blanco

Las celdas vacías en el rango harán que la fórmula devuelva un error # N / A. Para manejar celdas vacías, puede usar una fórmula de matriz más complicada que usa la función SI para filtrar valores en blanco:
{=SUMA(SI(FRECUENCIA(SI(data<>"", COINCIDIR(data,data,0)),FILA(data)-FILA(data.firstcell)+1),1))}
Nota: agregar SI convierte esto en una fórmula de matriz que requiere control-shift-enter.
Para más información, vea esta página.

Otras formas de contar valores únicos

Si tiene Excel 365, puede usar la función ÚNICA para contar valores únicos con una fórmula mucho más simple.
Una tabla dinámica también es una forma excelente de contar valores únicos.

Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT