Calculo del valor máximo de ventas de un producto entre un conjunto de países

En este escenario tenemos un conjunto de productos, las ventas y un listado de países en los que se han realizado las ventas. Y queremos calcular, para cada producto, las ventas del país en el que éstas hayan sido mayores.

Comencemos viendo las ventas por país. Para esto llevamos a una matriz el campo conteniendo el nombre de cada producto (Product[ProductName]) a filas y el campo conteniendo los países (Geography[Country]) a columnas:

Ventas de cada producto por país

Comprobamos cómo, por ejemplo, el valor máximo de ventas para el producto "All-Purpose Bike Stand" (el primero de la lista) es de 13.515€ -cifra correspondiente a los Estados Unidos-. Lo que deseamos, por lo tanto, es un listado de los productos acompañado, cada uno de ellos, por el valor máximo de sus ventas en el país que sea.

La función MAXX recorre una tabla evaluando, para cada fila, una expresión y escogiendo el valor máximo de los resultados obtenidos. En nuestro caso, para cada producto, querríamos recorrer una tabla de países evaluando las ventas totales del producto del que se trate en cada país. Algo como:

MAXX(<listado-de-países>; <ventas>)

El listado de países lo podemos obtener a partir del campo que contiene los países en los que se realizan las ventas utilizando la función VALUES que extrae los valores del mismo:

VALUES(Geography[Country]

Por último, si tenemos una medida Sales que sume el campo de ventas, podríamos obtener el resultado buscado con la medida:

Product max sales = MAXX(VALUES(Geography[Country]); [Sales])

En esta expresión, recorremos una tabla creada dinámicamente conteniendo el listado de países (VALUES(Geography[Country])) evaluando, para cada fila, la expresión [Sales]. Esta medida se contextualiza para cada fila devolviendo solo las ventas de cada país. El resultado, si lo llevásemos a una tabla, sería:

Ventas totales por país

La medida Product max sales, si la llevásemos directamente a una visualización tipo tarjeta, mostraría el valor máximo de este listado de ventas:

Valor máximo de ventas totales por país

Ahora bien, cuando llevemos esta medida a una tabla, también va a contextualizarse. Por ejemplo, si en dicha tabla tenemos un listado de productos, la tabla de países creada dinámicamente incluirá solo las ventas por país para dicho producto, y el valor máximo calculado por MAXX será el correspondiente solo a dicho producto.

Por lo tanto, basta crear una tabla con el listado de productos y esta medida para obtener el resultado deseado:

Ventas máximas por país para cada producto

 

Funciones DAX involucradas
Enviado por admin el Dom, 30/12/2018 - 19:54