Para el siguiente ejemplo, tenemos una tabla donde tenemos las unidades vendidas de un producto.
Tenemos otra tabla, llamada productos, donde tenemos el idproducto, producto, coste, y, precio.
Otra tabla, llamada descuento, con las unidades, y, el descuento que le corresponde.
Queremos calcular el precio de cada producto, y, el descuento que le corresponde según unidades vendidas.
Lo haremos en Power Pivot, para ello, con una celda dentro de la tabla ventas, vamos a la pestaña de Power Pivot, y, hacemos clic en agregar a modelo de datos.
Repetimos el paso para llevarnos las tablas de productos, y, descuento.
Lo siguiente es crear las relaciones, para ello, vamos a la vista de diagrama, desde la pestaña de inicio.
Vemos las tres tablas.
La primera relación que debemos de hacer es desde producto de la tabla productos a producto de la tabla ventas, donde crearemos una relación de uno a muchos, siendo el lado uno, la tabla productos, y, el lado varios, la tabla ventas.
Pero, debemos de realizar otra relación, en este caso, entre unidades de la tabla descuento con unidades de la tabla ventas, siendo el lado uno, la tabla descuento, y, el lado varios, la tabla ventas.
Vamos a calcular el precio para cada producto, para ello, añado una nueva columna calculada, donde voy a usar la función CALCULATE, y, como argumento expresión, usamos la función SUM para sumar la columna de precios de la tabla productos.
=CALCULATE(SUM(Productos[Precio])
Como argumento filter1, voy a usar la función FILTER, para que en la tabla descuento, busque un producto que sea igual al producto de la tabla ventas.
Cerramos paréntesis, y, aceptamos.
=CALCULATE(SUM(Productos[Precio]);FILTER(Productos;Productos[Producto]=Ventas[Producto]))
Y tenemos el precio para cada producto.
Ahora, vamos a calcular el descuento para cada producto según las unidades vendidas.
En una nueva columna calculada, voy a usar la función MAX, para que devuelva el valor máximo de la columna descuento de la tabla descuento.
=MAX(Descuento[Descuento])
Devuelve el porcentaje máximo, que es el 5%.
Ahora, vamos a usar la función CALCULATE, donde el argumento expresión, es la función MAX.
=CALCULATE(MAX(Descuento[Descuento])
Cuando aplicamos un filtro, no importa si no hay una relación.
Como argumento filter1, vamos a usar la función FILTER.
=CALCULATE(MAX(Descuento[Descuento]);FILTER(
Como argumento tabla, ponemos la tabla de descuento.
=CALCULATE(MAX(Descuento[Descuento]);FILTER(Descuento;
El siguiente argumento es FilterExpression, donde tenemos que preguntar si la columna de unidades de la tabla descuento, es menor o igual, que las unidades de la tabla ventas.
=CALCULATE(MAX(Descuento[Descuento]);FILTER(Descuento;Descuento[Unidades]<=Ventas[Unidades]
En Power Pivot, podemos seleccionar la columna, pero en Power BI no lo podemos hacer, tenemos que escribirla.
Cerramos paréntesis de FILTER, y, de CALCULATE, y, aceptamos.
=CALCULATE(MAX(Descuento[Descuento]);FILTER(Descuento;Descuento[Unidades]<=Ventas[Unidades]))
Vemos que tenemos el porcentaje que corresponde según producto, y, unidades vendidas, con una búsqueda aproximada.
Ahora, vamos a crear nuestra tabla dinámica, para ello, desde la pestaña de inicio, desplegamos tabla dinámica, y, seleccionamos tabla dinámica.
Seleccionamos hoja de calculo existente, la ponemos al lado de los modelos, y, aceptamos.
Llevamos a filas producto de la tabla productos, descuento de la tabla ventas, y a valores, llevamos unidades de la tabla ventas.
Tenemos un resumen de unidades vendidas por producto, y, dichas unidades desglosadas por descuento, por ejemplo, para el producto aspiradora, tenemos 19 unidades que le corresponde un porcentaje de descuento del 0%, 477 unidades que le corresponde un porcentaje de descuento del 0,375, y, 241 unidades que le corresponde un porcentaje de descuento del 0,5.
Pues, ya tenemos nuestro ejercicio completado.
Commentaires