6 febrero, 2025

CONTAR VALORES ÚNICOS UTILIZANDO FÓRMULAS DE MATRIZ DINÁMICA

Hola a todos!.

Espero que estéis bien!. Hoy vamos a tratar con fórmulas de matriz dinámica para resolver una doble consulta: se trata de obtener el número de elementos únicos de un rango y por otra parte de mostrar esos elementos únicos pero con un rango dinámico, es decir que la fórmula se actualizará si incluimos un nuevo elemento único en el rango.

Pongamos la siguiente tabla, en la que tenemos una serie de elementos de empleados de unos grandes almacenes y necesitamos obtener el número elementos únicos de la columna Sección:

Podemos hacerlo de varias formas con fórmulas convencionales:

  • CONTAR.SI(): donde incluimos estos en B2 y arrastramos hasta abajo, quedando únicamente ceros y unos, su sumatorio nos dará el total de elementos únicos.
=SI(CONTAR.SI(B$2:B2;B2)>1;0;1)
  • SUMAPRODUCTO(): Donde haremos lo mismo que en la fórmula de arriba. Aplicamos la fórmula en B2 y arrastramos hasta el final
=SI(SUMAPRODUCTO((B$2:B2=B2)*1)>1;0;1)

Al margen que podríamos utilizar otras fórmulas, si lo que buscamos es que el rango sea dinámico y que se muestre de forma derramada. Estas son dos posibilidades:

  • Con Secuencia y Contar.Si:
=SI(CONTAR.SI(DESREF(B2;0;0;SECUENCIA(CONTARA($B$2:$B$65000)));B2:INDICE($B$2:$B$65000;CONTARA($B$2:$B$65000)))>1;0;1)

Con esta fórmula mostraremos todo el rango desde el inicio al final con 0 (los elementos que se han repetido en alguna ocasión desde el inicio del rango, y el 1 la primera vez que aparecen) . Controlamos el final del rango con la función Indice. Lógicamente podremos obtener el resultado en una única celda combinando la función Suma:

=SUMA(SI(CONTAR.SI(DESREF(B2;0;0;SECUENCIA(CONTARA($B$2:$B$65000)));B2:INDICE($B$2:$B$65000;CONTARA($B$2:$B$65000)))>1;0;1))
  • Otra posibilidad es con Unicos e Indice.
=(UNICOS(B2:INDICE($B$2:$B$65000;CONTARA($B$2:$B$65000))))

Aquí el resultado será con los valores únicos pero controlamos el final del rango de la función con Indice. Si queremos saber el total solo tenemos que aplicar la función ContarA:

=CONTARA(UNICOS(B2:INDICE($B$2:$B$65000;CONTARA($B$2:$B$65000))))

La ventaja de las fórmulas de matriz dinámica es que se actualizan cuando actualizamos el rango de una forma más sencilla que las fórmulas tradicionales, y que se ejecutan sin necesidad de arrastrar el cursor con el rango o tener que dejar la fórmula aplicada en toda la columna.

Y esto es todo, espero que sea de utilidad.

Os dejo el archivo:

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies