Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Tengo un escenario de negocio por el cual necesitamos asignar diferentes dólares de reembolso total a un cliente, basado en alcanzar umbrales mínimos (ingresos enviados). La idea es que, dependiendo de dónde esté su valor de ingresos enviados dentro de los rangos, obtienen el % de reembolso * los ingresos enviados. En el caso de que sean menores a < 1000 obtendrían .05%. De 1000 a 4999, obtendrían el 1%. 5000 a 9999 obtendrían el 2%, etc.
Estoy tratando de usar IF o SWITCH en una medida, pero DAX no me permitirá usar solo los nombres de columna a menos que ponga un MAX, MIN, etc delante del nombre de la columna. Cualquier orientación sobre cómo configurar esto sería genial.
Tabla de rebajas
cliente | Ingresos mínimos | % de descuento |
Cliente A | 1000 | .01 |
Cliente A | 5000 | .02 |
Cliente A | 10000 | .03 |
Por lo tanto, suponiendo que estos eran los valores en la tabla de envío, entonces en enero el cliente ganaría un reembolso de $ 1.875 (375 * .005). En febrero, cumplieron con el umbral de $10 mil, por lo que serían los ingresos enviados * 3%.
Tabla de envíos
mes | cliente | Ingresos enviados |
Enero | Cliente A | 375 |
Febrero | Cliente A | 11500 |
Marzo | Cliente A | 6000 |
Solved! Go to Solution.
Como dijo Amitchandak, podría agregar otra medida para modificar el valor total basado en la medida original:
_Value =
SUM ( Shipments[Shipped Revenue] )
* MAXX (
FILTER ( Rebate, MAX ( Shipments[Shipped Revenue] ) > [Minimum Revenue] ),
[Rebate %])
Otra medida:
Internal Use % =
VAR _new =
SUMMARIZE ( 'Shipments', [Customer], [Month], "_total", [_Value] )
RETURN
IF ( HASONEVALUE ( 'Shipments'[Customer] ), SUMX ( _new, [_total] ) )
La salida final se muestra a continuación:
Saludos
Apoyo comunitario Team_ Yalan Wu
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Como dijo Amitchandak, podría agregar otra medida para modificar el valor total basado en la medida original:
_Value =
SUM ( Shipments[Shipped Revenue] )
* MAXX (
FILTER ( Rebate, MAX ( Shipments[Shipped Revenue] ) > [Minimum Revenue] ),
[Rebate %])
Otra medida:
Internal Use % =
VAR _new =
SUMMARIZE ( 'Shipments', [Customer], [Month], "_total", [_Value] )
RETURN
IF ( HASONEVALUE ( 'Shipments'[Customer] ), SUMX ( _new, [_total] ) )
La salida final se muestra a continuación:
Saludos
Apoyo comunitario Team_ Yalan Wu
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@texmexdragon, prueba dos meaures como
M1= sum(Envíos[Ingresos enviados]) * maxx(filter(Rebate , Rebate,[Customer] = max(Shipments[Customer]) && sum(Shipments[Shipped Revenue]) >Customer[Minimum Revenue]),[Rebate %])
M1 debe trabajar con envíos[Cliente],Envíos[Mes]
o tratar de gustar
importe del reembolso = sumx(resume(Envíos, Envíos[Cliente],Envíos[Mes], "_1",[M1]),[_1])
Hola @amitchandak veo lo que la fórmula está haciendo ahora, y donde el "error" es con la suma. La medida realmente funciona bien en el nivel de fila. Pero debido a que mi último umbral en mis datos es $1,000,000 - la calcuación está usando esa suma total * por el % máximo en la tabla. En este caso, $2,391,531 * 3.5% que me está dando el total incorrecto. Realmente estoy buscando el total de las filas que se muestran en la tabla (a partir de $30,405).