top of page
Foto del escritorJaime Franco Jimenez

Cálculo de descuento según cantidad.

En el siguiente ejemplo, tenemos un primer modelo donde tenemos un numero de factura, un producto, una cantidad, un precio de coste.










Tenemos un último modelo, donde según la cantidad le corresponde un porcentaje de descuento.










El porcentaje que le corresponderá, será dependiendo de la cantidad, pero, por ejemplo, para la primera cantidad que es 81, dicha cantidad no se encuentra dentro de la columna de unidades de porcentajes, por lo que debemos de ser una búsqueda aproximada.


Todo esto lo haremos con fórmulas DAX.


Nos llevamos las tres tablas a Power Pivot, para ello, con una celda dentro de cada modelo, vamos a la pestaña de Power Pivot, y, hacemos clic en agregar a modelo de datos.







Tenemos que obtener las unidades máximas para la columna de cantidad de la tabla facturas, voy a sacar las unidades máximas de la columna unidades de la tabla porcentajes, con la función MAX.


=MAX(Porcentajes[Unidades])


Obtengo 144, que son las unidades máximas de la columna unidades de la tabla porcentajes.


Necesitamos filtrar la tabla de descuento, para que la función MAX, devuelva las unidades correctas de la columna cantidad, y, para cambiar el contexto de filtro, debemos de usar la función CALCULATE.


Pues, después del signo igual ponemos la función CALCULATE, como argumento expresión, dejamos la función MAX.


=CALCULATE(MAX(Porcentajes[Unidades])


Ahora, es cuando tenemos que cambiar el contexto de filtro para vea las unidades correctas para la columna de cantidad, para ello, vamos a usar la función FILTER, esta función filtrara una tabla.


=CALCULATE(MAX(Porcentajes[Unidades]);FILTER(


Como argumento tabla, ponemos la tabla de porcentajes.


=CALCULATE(MAX(Porcentajes[Unidades]);FILTER(Porcentajes


Como filtro, vamos a filtrar la columna de unidades de la tabla porcentajes que sea menor o igual a cada cantidad de la columna cantidad de la tabla facturas, va a comparar cada cantidad de la tabla facturas con cada cantidad de la columna unidades de la tabla porcentajes, porque es una columna calculada.


=CALCULATE(MAX(Porcentajes[Unidades]);FILTER(Porcentajes;Porcentajes[Unidades]<=Facturas[Cantidad]


Cerramos paréntesis, y, aceptamos.


=CALCULATE(MAX(Porcentajes[Unidades]);FILTER(Porcentajes;Porcentajes[Unidades]<=Facturas[Cantidad]))


Tenemos los siguientes resultados, obteniendo el limite inferior para cada cantidad.










La primera cantidad es 81, y, el límite inferior es 50.










Lo siguiente es buscar dicho valor, para ello, vamos a usar la función LOOKUPVALUE, esta función devuelve el valor para la fila que cumple todos los criterios que especifiquemos.


El primer argumento es la columna que contiene el valor que queremos que se devuelva, que es la columna de descuento.


=LOOKUPVALUE(Porcentajes[Descuento]


El siguiente argumento es la columna donde tenemos que buscar, que es la columna de unidades de la tabla porcentajes.


=LOOKUPVALUE(Porcentajes[Descuento];Porcentajes[Unidades]


El siguiente argumento es el valor para buscar en dicha columna, en este caso, es la función CALCULATE.


=LOOKUPVALUE(Porcentajes[Descuento];Porcentajes[Unidades];CALCULATE(MAX(Porcentajes[Unidades]);FILTER(Porcentajes;Porcentajes[Unidades]<=Facturas[Cantidad]


Tiene un ultimo argumento, que es opcional, si lo omitimos devuelve BLANK, si el argumento columname devuelve blanco o un error, en este caso, lo voy a omitir.


Cerramos paréntesis y aceptamos.


=LOOKUPVALUE(Porcentajes[Descuento];Porcentajes[Unidades];CALCULATE(MAX(Porcentajes[Unidades]);FILTER(Porcentajes;Porcentajes[Unidades]<=Facturas[Cantidad])


Obtenemos el descuento para cada cantidad.









Ahora quiero cargar este modelo como una tabla en Excel, para ello, vuelvo a Excel, voy a la pestaña de datos, dentro de obtener y transformar, hacemos clic en conexiones existentes.








Se abre la ventana conexiones existentes, hacemos clic en tablas.







Marcamos la tabla de facturas, y, hacemos clic en abrir.












Se abre la ventana de importar datos, marcamos tabla, y, hoja de cálculo nueva.
















Aceptamos, y, ya tenemos nuestro modelo como una tabla.













15 visualizaciones0 comentarios

Entradas Recientes

Ver todo

Comments


bottom of page