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.
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:
indicador | incremental | identificación | año | valor |
A | Sí | 1 | 2019 | 10 |
A | Sí | 1 | 2020 | 10 |
A | Sí | 2 | 2019 | 20 |
A | Sí | 2 | 2020 | 30 |
B | No | 3 | 2019 | 20 |
B | No | 3 | 2020 | 10 |
B | No | 4 | 2019 | 30 |
B | No | 4 | 2020 | 30 |
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:
indicador | incremental | identificación | total |
A | Sí | 1 | 20 |
A | Sí | 2 | 50 |
B | No | 3 | 20 |
B | No | 4 | 30 |
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:
indicador | incremental | total |
A | Sí | 70 |
B | No | 50 |
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
Solved! Go to Solution.
@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!
@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
@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.
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 |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |