Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola
Tengo una matriz con una línea de cliente par, con 2 columnas condicionales:
- Simulación A : nbUsers * 6, si el número de minutos por usuario por mes < 120
- Simulación B : nbUsers * 11, si > 120
Me gustaría tener en la línea "Total" la suma de la columna, en lugar de que las condiciones se aplican al total.
He probado la columna "Medida" (en el Sim B) así:
IF (HASONEFILTER(Client[Name]),
[SimulationB],
SUMX(FILTER(Client, [NbMinutesPerUserPerMonth]> 120), DISTINCTCOUNT(UserAccount[Id]) * 11))
Me gustaría tener 18 en el total de Simulación A y 55 en la columna para Simulación B :
¡Necesito ayuda!
Solved! Go to Solution.
Hola
Cuando se utiliza SUMX() se utiliza un iterador y la transición de contexto se inicia. La transición de contexto permite transformar el contexto de fila en un contexto de filtro, lo que básicamente significa calcular el valor deseado para la fila que está iterando (aquí se iteran los clientes).
Pero para que la transición de contexto funcione, debe utilizar una medida o un CALCULATE():
- aquí para [NbOfMinutesPerUserPerMonth] está bien, ya que es una medida
- sin embargo, para DISTINCTCOUNT(UserAccount[Id]), para cada iteración (por lo que para cada cliente) calculará el número total de cuentas distintas en el contexto actual
> intente agregar un CALCULATE alrededor de DISTINCTCOUNT:
IF (
HASONEFILTER(Client[Name]),
[SimulationB],
SUMX(
FILTER( Client,
[NbMinutesPerUserPerMonth]> 120),
CALCULATE( DISTINCTCOUNT(UserAccount[Id]) * 11) )
)
)
Además, no estoy seguro de que el IF / HASONEFILTER es útil aquí. Tal vez podrías simplemente escribir:
SUMX(
FILTER(
Client,
[NbMinutesPerUserPerMonth]> 120
),
CALCULATE( DISTINCTCOUNT(UserAccount[Id]) * 11)) )
)
Espero que funcione y ayude. ¿De verdad?
Thomas
Hola @AnthonyXelya ,
Este tipo de cálculo es sensible al contexto, por lo que es posible que deba crear una tabla temporal para realizar el SUMX.
Sin embargo, mirando el código que está colocando pruebe el siguiente código:
IF (HASONEFILTER(Client[Name]),
[SimulationB],
SUMX(ALLSELECTED(Client[Name]), [SimulationB])
Si esto no funciona, ¿está usted absble para compartir cierta información de maqueta para que me refiero a una tabla temporal se puede utilizar para el contexto de su medida.
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsHola
Cuando se utiliza SUMX() se utiliza un iterador y la transición de contexto se inicia. La transición de contexto permite transformar el contexto de fila en un contexto de filtro, lo que básicamente significa calcular el valor deseado para la fila que está iterando (aquí se iteran los clientes).
Pero para que la transición de contexto funcione, debe utilizar una medida o un CALCULATE():
- aquí para [NbOfMinutesPerUserPerMonth] está bien, ya que es una medida
- sin embargo, para DISTINCTCOUNT(UserAccount[Id]), para cada iteración (por lo que para cada cliente) calculará el número total de cuentas distintas en el contexto actual
> intente agregar un CALCULATE alrededor de DISTINCTCOUNT:
IF (
HASONEFILTER(Client[Name]),
[SimulationB],
SUMX(
FILTER( Client,
[NbMinutesPerUserPerMonth]> 120),
CALCULATE( DISTINCTCOUNT(UserAccount[Id]) * 11) )
)
)
Además, no estoy seguro de que el IF / HASONEFILTER es útil aquí. Tal vez podrías simplemente escribir:
SUMX(
FILTER(
Client,
[NbMinutesPerUserPerMonth]> 120
),
CALCULATE( DISTINCTCOUNT(UserAccount[Id]) * 11)) )
)
Espero que funcione y ayude. ¿De verdad?
Thomas
It works!
Thank you very much!
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |