SAM190370
Me gustaría clasificar una tabla. Esto funciona bien con rankx. Sin embargo, me gustaría filtrar la tabla antes de hacer la clasificación. Sin embargo, parece que la fórmula ignora el filtrado.
1) Primero ves los datos
2) Clasificación sin filtrado
3) Clasificación sin Dinamarca
¿Cómo debe ser la medida? Probé este, pero parece resumir los 3 primeros a 1000, simplemente ignorando el nuevo ranking.
Top3SinDinamarca:=CALCULAR(‘Datos'[Amount];FILTRO(Datos;Datos[Country]<>«Dinamarca»);FILTRO(Datos;RANKX(TODOS(Datos);[Amount])<=3))
Parece que el rango ignora cualquier filtro antes del ranking.
¿Alguna sugerencia?
/ Soren
Eric_Zhang
@SAM190370 escribió:
Me gustaría clasificar una tabla. Esto funciona bien con rankx. Sin embargo, me gustaría filtrar la tabla antes de hacer la clasificación. Sin embargo, parece que la fórmula ignora el filtrado.
1) Primero ves los datos
2) Clasificación sin filtrado
3) Clasificación sin Dinamarca
¿Cómo debe ser la medida? Probé este, pero parece resumir los 3 primeros a 1000, simplemente ignorando el nuevo ranking.
Top3SinDinamarca:=CALCULAR(‘Datos'[Amount];FILTRO(Datos;Datos[Country]<>«Dinamarca»);FILTRO(Datos;RANKX(TODOS(Datos);[Amount])<=3))
Parece que el rango ignora cualquier filtro antes del ranking.
¿Alguna sugerencia?
/ Soren
@SAM190370
Tal vez puedas probar una medida con más flexibilidad. Consulta más detalles en el pbix adjunto.
Top3ofAnySelectedCountry = VAR TBL = SUMMARIZE ( Data, Data[Country], "sumtotal", SUM ( Data[Amount] ) ) VAR RNK_TBL = ADDCOLUMNS ( TBL, "RANK", RANKX ( TBL, [sumtotal],, DESC, DENSE ) ) RETURN SUMX ( FILTER ( RNK_TBL, [RANK] <= 3 ), [sumtotal] )
Eric_Zhang
@SAM190370 escribió:
Me gustaría clasificar una tabla. Esto funciona bien con rankx. Sin embargo, me gustaría filtrar la tabla antes de hacer la clasificación. Sin embargo, parece que la fórmula ignora el filtrado.
1) Primero ves los datos
2) Clasificación sin filtrado
3) Clasificación sin Dinamarca
¿Cómo debe ser la medida? Probé este, pero parece resumir los 3 primeros a 1000, simplemente ignorando el nuevo ranking.
Top3SinDinamarca:=CALCULAR(‘Datos'[Amount];FILTRO(Datos;Datos[Country]<>«Dinamarca»);FILTRO(Datos;RANKX(TODOS(Datos);[Amount])<=3))
Parece que el rango ignora cualquier filtro antes del ranking.
¿Alguna sugerencia?
/ Soren
@SAM190370
Tal vez puedas probar una medida con más flexibilidad. Consulta más detalles en el pbix adjunto.
Top3ofAnySelectedCountry = VAR TBL = SUMMARIZE ( Data, Data[Country], "sumtotal", SUM ( Data[Amount] ) ) VAR RNK_TBL = ADDCOLUMNS ( TBL, "RANK", RANKX ( TBL, [sumtotal],, DESC, DENSE ) ) RETURN SUMX ( FILTER ( RNK_TBL, [RANK] <= 3 ), [sumtotal] )
vanessafvg
@SAM190370
creo que el problema tiene que ver con su declaración all, all elimina el contexto del filtro, intente allselected
Top3SinDinamarca:=CALCULAR(‘Datos'[Amount];FILTRO(Datos;Datos[Country]<>«Dinamarca»);FILTRO(Datos;RANKX(TODO SELECCIONADO(Datos);[Amount])<=3))
SAM190370
En respuesta a vanessafvg
@vanessafvg Gracias por tu aporte. Tal vez estoy haciendo algo mal porque no puedo hacer que funcione.
/ sorén
SAM190370
En respuesta a vanessafvg
@Eric_Zhang Esta es definitivamente una solución más flexible y en realidad funciona muy bien. Sin embargo, en mi situación del mundo real, tengo varios «países» para seleccionar y me gustaría anular la selección de uno.
¿Tienes alguna idea de cómo puedo escribir en el filtro directamente en la medida para que funcione?