lunes, 18 de febrero de 2019

Power Pivot: Una medida con DISTINCTCOUNT

Hoy trabajaremos con otro de los complementos Power de Excel Power Pivot, para dar una posible solución a una lectora que preguntaba:
[...]He creado una tabla dinámica con una medida calculada que me da el total de ventas por meses de más de 500 clientes. Querría  poder filtrarlos por aquellos que han tenido compras todos los meses o como mínimo 7 meses 😬... Para hacer una gráfica que compare  varios indicadores... 
Necesito reducir el número de clientes a aquellos que hayan comprado en 7 o más meses[...]


En particular crearemos una sencilla medida dentro de nuestro modelo de datos que utilice la función DAX: DISTINCTCOUNT.

Comencemos...
Tenemos en nuestra hoja de cálculo un listado de ventas del año por clientes y días... (tabla llamada 'TblVentas')...
Esta tabla la agregaremos al modelo de datos.
Una forma es, teniendo la ficha PowerPivot > grupo Tablas > botón Agregar a modelo de datos



Con la Tabla cargada en el modelo generaremos una Tabla dinámica desde esa tabla.
En el editor de Power Pivot, en su Ficha de Inicio > desplegable Tabla dinámica > opción Tabla dinámica

Power Pivot: Una medida con DISTINCTCOUNT



Insertamos la tabla dinámica en nuestra hoja de cálculo y la diseñamos llevando los campos 'cliente' y 'Fecha' al área de filas y el campo 'Ventas' al área de valores resumido por suma (o por promedio según necesidad), tal como se ve en la imagen siguiente

Power Pivot: Una medida con DISTINCTCOUNT



En el siguiente paso, y trabajando desde la tabla dinámica en la hoja de cálculo, procedemos a realizar una agrupación del campo Fechas por 'Meses'...
Basta seleccionar una fecha en la tabla dinámica y hacer clic derecho y seleccionar Agrupar desde el menú contextual.


Esta agrupación en la tabla dinámica tiene su efecto sobre la tabla cargada en el modelo de datos... y es que se han generado algunas columnas calculadas automáticamente como se ven en la imagen:
Fechas (índice de meses): =MONTH([Fechas])
Fechas (meses): =FORMAT([Fechas]; "MMM")

Nota: igualmente podíamos haber creado nuestras columnas calculadas manualmente.

Power Pivot: Una medida con DISTINCTCOUNT



Paso importante. Añadimos una medida sobre la columna calculada Fechas (meses).
La llamaré 'unicos' y emplearemos la función DAX de DISTINCTCOUNT(campo)
unicos:=DISTINCTCOUNT([Fechas (mes)])

Recuerda situarte en la parte inferior (área de cálculo) para insertar nuestra medida....

Power Pivot: Una medida con DISTINCTCOUNT



Con la medida creada volvemos a la tabla dinámica (y la actualizamos si fuera necesario), viendo y teniendo a nuestra disposición la medida creada.
Arrastraremos la medida al área de valores...

Power Pivot: Una medida con DISTINCTCOUNT



Finalmente aplicaremos un filtro sobre el campo 'Cliente', filtro por valor cuando el campo de 'unicos' (nuestra medida) sea mayor o igual que siete (en mi ejemplo más simple mayor o igual que 9):

Power Pivot: Una medida con DISTINCTCOUNT



Tras aceptar solo veremos en nuestra tabla dinámica aquellos clientes que han realizado ventas en 9 o más meses...
Veamos comparadas una tabla dinámica completa y la tabla dinámica resultante de nuestras operaciones

2 comentarios:

Nota: solo los miembros de este blog pueden publicar comentarios.