natabird3
Hola,
Estoy tratando de convertir la siguiente secuencia de cálculo de un archivo de Excel a power bi, pero no puedo hacerlo con la última fórmula avergeifs ya que no existe en power bi por alguna razón. Entonces tengo una columna que necesito clasificar (los valores variarán según el ID). Hago eso usando la nueva columna calculada:



v-lid-msft
Hola @ natabird3,
Primero creo una columna de cálculo para clasificar el valor, también puede otra función de clasificación,
Rank = RANKX('Table2','Table2'[Value],,DESC)
Luego, en otra tabla, crea una columna numérica
Number = ROUND(COUNTROWS(Table2) * [TOP N],0)
Entonces podemos crear una medida para calcular el resultado.
Result = FORMAT ( AVERAGEX ( FILTER ( ALL ( Table2 ), [Rank] <= SELECTEDVALUE ( 'Calculate'[Number] ) ), [Value] ), "Percent" )
O simplemente podemos usar una columna de cálculo para obtener el mismo resultado
ResultColumn = FORMAT ( AVERAGEX ( FILTER ( Table2, [Rank] <= [Number] ), [Value] ), "Percent" )
Por cierto, pbix adjunto.
Atentamente,
Equipo de soporte de la comunidad _ DongLi
Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más
v-lid-msft
En respuesta a natabird3
Hola @ natabird3,
La medida es dinámica, pero las columnas calculadas se calculan durante el procesamiento de la base de datos y luego se almacenan en el modelo. Entonces, en su escenario, solo podemos crear una medida utilizando el siguiente DAX para cumplir con sus requisitos:
Result = VAR n = ROUND ( COUNTROWS ( 'Table' ) * SUM ( 'Calculate'[TOP N] ), 0 ) VAR t = ADDCOLUMNS ( 'Table', "rank", RANKX ( 'Table', [Value],, DESC ) ) RETURN FORMAT ( AVERAGEX ( FILTER ( t, [rank] <= n ), [Value] ), "Percent" )
Por cierto, pbix adjunto.
Atentamente,
Equipo de soporte de la comunidad _ DongLi
Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más
v-lid-msft
Hola @ natabird3,
Primero creo una columna de cálculo para clasificar el valor, también puede otra función de clasificación,
Rank = RANKX('Table2','Table2'[Value],,DESC)
Luego, en otra tabla, crea una columna numérica
Number = ROUND(COUNTROWS(Table2) * [TOP N],0)
Luego podemos crear una medida para calcular el resultado.
Result = FORMAT ( AVERAGEX ( FILTER ( ALL ( Table2 ), [Rank] <= SELECTEDVALUE ( 'Calculate'[Number] ) ), [Value] ), "Percent" )
O simplemente podemos usar una columna de cálculo para obtener el mismo resultado
ResultColumn = FORMAT ( AVERAGEX ( FILTER ( Table2, [Rank] <= [Number] ), [Value] ), "Percent" )
Por cierto, pbix adjunto.
Atentamente,
Equipo de soporte de la comunidad _ DongLi
Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más
natabird3
En respuesta a v-lid-msft
Hola @ v-lid-msft ,
Gracias por la solución propuesta, pensé que funcionaba cuando intenté implementarla, pero ahora, cuando filtro, no puedo obtener el resultado deseado. Creo que debido a cómo configuramos la fórmula numérica, cuenta las filas asumiendo que cada fila es una ID diferente, sin embargo, tenemos algunas ID con múltiples entradas, por lo que si filtro por ID, no obtengo el resultado deseado ya que nada cambia. Por ejemplo, podemos tener la siguiente situación, en este caso obtengo el total de ambas identificaciones, de todos modos, ¿solo obtengo por identificación? Házmelo saber, gracias de nuevo por tu ayuda.
v-lid-msft
En respuesta a natabird3
Hola @ natabird3,
La medida es dinámica, pero las columnas calculadas se calculan durante el procesamiento de la base de datos y luego se almacenan en el modelo. Entonces, en su escenario, solo podemos crear una medida utilizando el siguiente DAX para cumplir con sus requisitos:
Result = VAR n = ROUND ( COUNTROWS ( 'Table' ) * SUM ( 'Calculate'[TOP N] ), 0 ) VAR t = ADDCOLUMNS ( 'Table', "rank", RANKX ( 'Table', [Value],, DESC ) ) RETURN FORMAT ( AVERAGEX ( FILTER ( t, [rank] <= n ), [Value] ), "Percent" )
Por cierto, pbix adjunto.
Atentamente,
Equipo de soporte de la comunidad _ DongLi
Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más
natabird3
En respuesta a v-lid-msft
Funciona perfecto, gracias por la ayuda.