The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Cuando introduzco parte de una expresión sumx como variable en lugar de codificarla directamente en la medida, obtengo un resultado diferente (el esperado).
A continuación un ejemplo simplificado. Datos de muestra =
Mes | AccountID | BalanceTotal |
1 | 1001 | 500 |
1 | 1002 | 500 |
2 | 1001 | 500 |
2 | 1002 | 500 |
Resultado esperado de la medida
Multiplica el saldo de cada fila por el mes máximo seleccionado. Entonces, cuando se seleccionen ambos meses, multiplique cada 500 por 2.
Nota: Sé que en este ejemplo simplificado no necesito sumx, pero simplemente puedo hacer sum(Balance)*calculate(max(allselected,Month)). Pero en el ejemplo más complejo de la vida real, necesito una medida sumx y la diferencia es la misma que a continuación.
Originalmente creé esta medida 'Balance x maxmonth':
var _sumx =
sumx(Balances,Balances[Balance]*
calculate(
max(Balances[Month])
,ALLSELECTED(Balances[Month])
)
)
return
_sumx
Esto no devuelve el resultado esperado cuando se agrega un objeto visual a nivel de mes. Sin embargo, si reemplazo la parte 'calcular' de la expresión sumx en una variable como la siguiente, lo hace:
Balance x maxmonth with var =
var _maxmonth =
calculate(
max(Balances[Month])
,ALLSELECTED(Balances[Month])
)
var _sumx =
sumx(Balances,Balances[Balance]*
_maxmonth
)
return
_sumx
Resultados con y sin variable para la parte de cálculo de la expresión:
¿Alguien puede explicar por qué el uso de un var podría conducir a un resultado diferente?
Estoy contento con la solución, pero quiero entender esta diferencia en el comportamiento cuando se usan variables dentro de una expresión sumx.
Muchas gracias.
Solved! Go to Solution.
@akapelle En el primer caso, el CALCULATE se evalúa para cada fila, mientras que en el segundo caso se evalúa una vez dentro del contexto completo de la medida.
@akapelle En el primer caso, el CALCULATE se evalúa para cada fila, mientras que en el segundo caso se evalúa una vez dentro del contexto completo de la medida.