Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

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.

Reply
AnthonyXelya
Helper II
Helper II

Gran total para una medida condicional

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 :

2020-10-12_10h39_13.png

¡Necesito ayuda!

 
1 ACCEPTED SOLUTION
Anonymous
Not applicable

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

View solution in original post

3 REPLIES 3
MFelix
Super User
Super User

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


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



Anonymous
Not applicable

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

It works! 

 

Thank you very much!

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.