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
Syndicate_Admin
Administrator
Administrator

Suma o máx. de valores en grupo en función de la condición de columna

Jin

Estoy trabajando con un conjunto bastante grande de indicadores con diferentes valores (objetivo, resultado) y dimensiones relacionadas (por ejemplo, año, proyecto, país, donante). Cada indicador puede tener múltiples proyectos informando sobre él, sus indicadores tienen identificadores únicos. Los valores pueden ser introducidos por los usuarios de forma incremental (por ejemplo, servicios prestados, es decir, total para un período seleccionado equivale a suma de todos los valores en ese período) o como más bien un estado observacional (por ejemplo, número de miembros activos, es decir, el total de un período seleccionado podría ser más bien el valor más alto en ese período). Estoy tratando de crear un cálculo que utilice el total correcto dependiendo de si el indicador es incremental o no, evaluado para cada ID distinto que informa sobre el mismo indicador. Esto debe funcionar con diferentes contextos de filtro de usuario, cuando se profundizan (por ejemplo, por proyecto) y a un nivel agregado (por ejemplo, todos los datos enviados a un indicador determinado).

He intentado variaciones de SUMX, RESUMEN, GROUPBY, MAX... Creo que he logrado crear un cálculo para encontrar el valor máximo para un ID de indicador específico y luego obtener la suma de todos estos valores máximos, pero no puedo encontrar una manera de hacer esto sólo para indicadores que no son incrementales, mientras que la suma de los valores del resto.

He aquí un intento de algunos datos de ejemplo:

indicadorincrementalidentificaciónañovalor
A1201910
A1202010
A2201920
A2202030
BNo3201920
BNo3202010
BNo4201930
BNo4202030


El resultado total por ID del indicador para ambos años debe sumar valores en el ID del indicador incremental distinto y mostrar el valor máximo en los ID de indicador no incrementales. Por lo tanto, el resultado de la muestra anterior debe ser:

indicadorincrementalidentificacióntotal
A120
A250
BNo320
BNo430

Sin embargo, en un nivel más agregado, el total debe resumir los valores en distintos IDs de indicador incrementales como antes, pero también sumar los valores máximos de los distintos DNI de indicadores no incrementales:

indicadorincrementaltotal
A70
BNo50

Tenga en cuenta que he intentado obtener el valor más alto para los indicadores no incrementales, pero el valor más reciente o el valor promedio también podría ser interesante (todavía tratando de averiguar qué funcionará mejor aquí).

También espero terminar con algo que no es demasiado pesado, ya que estos cálculos forman la base para muchas otras medidas, así como diferentes visualizaciones.

Espero que la intención fuera clara. ¡Gracias de antemano!

Br

Emma

2 ACCEPTED SOLUTIONS
Syndicate_Admin
Administrator
Administrator

@elanor ,

No conozco todos sus requisitos previos, así que no estoy seguro de si es la mejor solución, pero pruebe este:

Measure = 
VAR curentType = SELECTEDVALUE(T[Incremental])
VAR currentIndicator = SELECTEDVALUE(T[Indicator])
RETURN
IF(curentType = "Yes",
    CALCULATE(SUM(T[Value]), T[Indicator] = currentIndicator),
    SUMX(
        SUMMARIZE(T,T[Indicator],T[Incremental],T[ID]),
        CALCULATE(MAX(T[Value])))
)

¿Respondí a tu pregunta? ¡Marca mi puesto como solución!

View solution in original post

(Editado después de darle otra oportunidad!)

Gracias por su sugerencia, esto está en la línea de lo que he estado intentando - o al menos la parte SUMX para los indicadores no incrementales, pero no podía averiguar cómo resolver ambos en un solo cálculo. Tengo errores al probar su cálculo (muy pocos argumentos pasados a la función SUMX), pero traté de adaptarlo y creo * funciona (tienen que hacer más comprobaciones de uso en diferentes contextos). Tengo que admitir que no entiendo muy bien SELECTEDVALUE, así que tendrá que leer sobre eso.


Resultado =
VAR incremental = SELECTEDVALUE(T[Incremental])
devolución
IF(incremental = "Sí",
CALCULATE(SUM(T[Valor])),
SUMX(
RESUMEN(
T
T[Id],
"maxtotal", MAX(T[Valor])), [maxtotal]))


Muchas gracias por su ayuda!

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

@elanor ,

No conozco todos sus requisitos previos, así que no estoy seguro de si es la mejor solución, pero pruebe este:

Measure = 
VAR curentType = SELECTEDVALUE(T[Incremental])
VAR currentIndicator = SELECTEDVALUE(T[Indicator])
RETURN
IF(curentType = "Yes",
    CALCULATE(SUM(T[Value]), T[Indicator] = currentIndicator),
    SUMX(
        SUMMARIZE(T,T[Indicator],T[Incremental],T[ID]),
        CALCULATE(MAX(T[Value])))
)

¿Respondí a tu pregunta? ¡Marca mi puesto como solución!

(Editado después de darle otra oportunidad!)

Gracias por su sugerencia, esto está en la línea de lo que he estado intentando - o al menos la parte SUMX para los indicadores no incrementales, pero no podía averiguar cómo resolver ambos en un solo cálculo. Tengo errores al probar su cálculo (muy pocos argumentos pasados a la función SUMX), pero traté de adaptarlo y creo * funciona (tienen que hacer más comprobaciones de uso en diferentes contextos). Tengo que admitir que no entiendo muy bien SELECTEDVALUE, así que tendrá que leer sobre eso.


Resultado =
VAR incremental = SELECTEDVALUE(T[Incremental])
devolución
IF(incremental = "Sí",
CALCULATE(SUM(T[Valor])),
SUMX(
RESUMEN(
T
T[Id],
"maxtotal", MAX(T[Valor])), [maxtotal]))


Muchas gracias por su ayuda!

No @elanor,

Parece que su problema ha sido resuelto. ¿Podría por favor tratar de aceptar una respuesta útil como respuesta para ayudar a otros a encontrarla más rápidamente?

Saludos

Dedmon Dai

Syndicate_Admin
Administrator
Administrator

@elanor, no tengo claro la salida esperada. Lo que está mostrando paso a paso es sólo suma

hola

El ID total por indicador (segunda tabla) no es solo una suma. Es la suma de todos los valores de ID respectivos para los indicadores incrementales, pero el valor reportado más alto para los indicadores no incrementales. A continuación, la tabla final suma estos valores máximos evaluados por ID para indicadores no incrementales. ¿No estás seguro de si eso tenía más sentido? Me resulta un poco difícil de explicar.

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.