Get certified in Microsoft Fabric—for free! For a limited time, the Microsoft Fabric Community team will be offering free DP-600 exam vouchers. Prepare now
¡Hola!
Mi objetivo es obtener el cambio porcentual mensual mínimo en un período de 6 meses.
Cuando compruebo el cambio de MoM, el resultado se ve bien cuando el contexto del filtro visual es año-mes.
Sin embargo, en el nivel escalar, devuelve 0,0.
¿Qué estoy haciendo mal?
Minimum MoM % Change =
var previousperiod =
CALCULATE(
[Sales Amount],
DATEADD(DATETABLE[Date], -1, MONTH)
)
var lastperiod =
[Sales Amount]
var change =
DIVIDE( lastperiod - previousperiod, previousperiod)
VAR vtable =
FILTER(
SUMMARIZE(
DATETABLE,
DATETABLE[Month Of Year],
DATETABLE[Month Offset],
"mom", change
),
DATETABLE[Month Offset] >= -6 && DATETABLE[Month Offset] <= -1
)
var minimum =
MINX( vtable, change)
RETURN
minimum
Solved! Go to Solution.
@zenisekd gracias. Necesito usarlo en un grupo de cálculo, por lo tanto, necesito estar en una medida. Sin embargo, lo acabo de resolver. El DAX a veces me atrapa... Tuve que poner todo en una mesa virtual, ¡y listo! Sospecho que CALCULATE estaba anulando el contexto del fiter fuera de la tabla virtual.
Solución:
Max MoM Change =
VAR vtable =
FILTER(
SUMMARIZE(
DATETABLE,
DATETABLE[Month Of Year],
DATETABLE[Month Offset],
"previousperiod",
CALCULATE(
[Posted Charges],
DATEADD(DATETABLE[Date], -1, MONTH)
),
"lastperiod",
[Posted Charges]
),
DATETABLE[Month Offset] >= -6 && DATETABLE[Month Offset] <= -1
)
var minimum =
MINX( vtable, DIVIDE( [lastperiod] - [previousperiod], [previousperiod]))
var maximum =
MAXX( vtable, DIVIDE( [lastperiod] - [previousperiod], [previousperiod]))
RETURN
maximum
Mi consejo rápido sería probablemente optar por separar el cálculo de una sola línea del cálculo escalar: IF( DISTINCTCOUNT(meses) = 1, "Cálculo mensual", "cálculo deseado de varios meses al mismo tiempo")
De esta forma podrás comprobar los resultados por separado...
@zenisekd gracias. Necesito usarlo en un grupo de cálculo, por lo tanto, necesito estar en una medida. Sin embargo, lo acabo de resolver. El DAX a veces me atrapa... Tuve que poner todo en una mesa virtual, ¡y listo! Sospecho que CALCULATE estaba anulando el contexto del fiter fuera de la tabla virtual.
Solución:
Max MoM Change =
VAR vtable =
FILTER(
SUMMARIZE(
DATETABLE,
DATETABLE[Month Of Year],
DATETABLE[Month Offset],
"previousperiod",
CALCULATE(
[Posted Charges],
DATEADD(DATETABLE[Date], -1, MONTH)
),
"lastperiod",
[Posted Charges]
),
DATETABLE[Month Offset] >= -6 && DATETABLE[Month Offset] <= -1
)
var minimum =
MINX( vtable, DIVIDE( [lastperiod] - [previousperiod], [previousperiod]))
var maximum =
MAXX( vtable, DIVIDE( [lastperiod] - [previousperiod], [previousperiod]))
RETURN
maximum
Check out the October 2024 Power BI update to learn about new features.
Learn from experts, get hands-on experience, and win awesome prizes.