Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Hola a todos,
Busco apoyo para resolver un problema de negocio relacionado con la asignación del descuento correcto a un cliente en función del objetivo de unidades vendidas preestablecido. Ejemplo: si el cliente compró 30 unidades, aplicamos un descuento del 3%, 40 unidades, 4%, etc.
Mi modelo:
Tengo una tabla "Rápeles" con 3 columnas, client_id, descuento, objetivo de unidad vendida. En esta tabla, la columna client_id no tiene valores únicos debido al hecho de que hay varios objetivos y varios descuentos. El número de objetivos no es fijo, por lo que un cliente puede tener 3 líneas y otras 10 líneas en la tabla "Rápeles". Tengo otra tabla "Partner" que contiene client_id únicos que filtran la tabla "Rappels". "Orden de venta" es mi tabla de datos que contiene datos de transacciones y client_id y está filtrada por socio. Si quiero la unidad vendida por el cliente en la tabla "Rappels" tengo que usar la función Treatas en el client_id.
Mi problema es que quiero asignar el descuento correcto a aplicar en función de la unidad comprada en el año 2023.
Ejemplo, el cliente 12345 tiene una unidad comprada 568, los objetivos y descuentos son: 300 = 2%, 400 = 3%, 500 = 4%, 600 = 5%, 700 = 6%. ¿Cómo puedo utilizar DAX para devolver el descuento aplicable que será el del rango 500-600? Recuerde que el objetivo no es fijo, un cliente puede tener un objetivo a partir de 40 unidades.
¡Gracias!
Hola @_GianmaBI46,
¿Puedes probar esto, por favor?
1. Calcular el total de unidades vendidas en 2023
Units Sold 2023 =
CALCULATE(
SUM('Sale order'[Units Sold]),
'Sale order'[Year] = 2023
)
2. Determinar el descuento aplicable
Applicable Discount =
VAR ClientID = SELECTEDVALUE('Partner'[client_id])
VAR UnitsSold2023 = [Units Sold 2023]
RETURN
MAXX(
FILTER(
'Rappels',
'Rappels'[client_id] = ClientID &&
'Rappels'[Unit sold target] <= UnitsSold2023
),
'Rappels'[discount]
)
Hola Sahir,
Su solución funciona, pero todavía tengo un par de problemas:
1) A nivel total, la fórmula no se está sumando correctamente
2) Si pongo columnas de la tabla de Rappels, la fórmula devuelve un valor para cada nivel de "consumo", que es el "objetivo de unidades vendidas".
¿Cómo podemos modificar?
Punto 1) para que sea addicitve?
Punto 2) ¿Hacer que la fórmula de descuento aplicable devuelva un valor solo cuando las unidades '23 sean superiores al descuento en la línea?
Gracias
Hola Sahir,
Gracias por la solución sugerida, funciona perfectamente.
Se me había ocurrido lo siguiente: