Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Hola
No puedo obtener la clasificación adecuada en un conjunto de datos simple. Tengo valores de fecha, país y proyección, por favor encuentre la captura de pantalla a continuación:
Por favor, ayúdame a obtener la clasificación dinámica basada en la selección del filtro de fecha.
Solved! Go to Solution.
Hola @vin26 ,
Perdón por volver tarde.
Intente crear una tabla de fechas y utilice su columna como segmentación de datos. Modifiqué la fórmula, por favor inténtelo de nuevo.
Date = CALENDAR(MIN(country_projection[date]),MAX(country_projection[date]))
Measure 2 =
RANKX (
ALLSELECTED ( country_projection ),
CALCULATE (
SUM ( country_projection[projection] ),
FILTER (
ALLEXCEPT ( country_projection, country_projection[country] ),
country_projection[date] >= MIN ( 'Date'[Date] )
&& country_projection[date] <= MAX ( 'Date'[Date] )
)
),
,
DESC,
DENSE
)
Hola @v-xuding-msft Muchas gracias por la solución, esto funciona bien. ¡Excelente!
También tengo otra lógica que también funciona para mi requisito:
SumCountry = SUM(country_projection[projection])
RankCountry = IF(
ISFILTERED(country_projection[date]),
RANKX(
ALLSELECTED(country_projection[country]),[SumCountry],,DESC,Skip
)
)
Hola @vin26 ,
Por favor, intente esto:
Measure 2 =
RANKX (
ALLSELECTED ( country_projection ),
CALCULATE (
SUM ( country_projection[projection] ),
ALLEXCEPT ( country_projection, country_projection[country] )
),
,
DESC,
DENSE
)
Hola @v-xuding-msft Gracias por la sugerencia, funciona para el pequeño origen de datos, cuando cargo los datos reales (tamaño 30k filas) y la selección del intervalo de fechas, rango no se muestra correctamente. Pero funciona sin ninguna selección de fecha.
con selección de intervalo de fechas
selección de toda la selección de fecha:
Hola @vin26 ,
Perdón por volver tarde.
Intente crear una tabla de fechas y utilice su columna como segmentación de datos. Modifiqué la fórmula, por favor inténtelo de nuevo.
Date = CALENDAR(MIN(country_projection[date]),MAX(country_projection[date]))
Measure 2 =
RANKX (
ALLSELECTED ( country_projection ),
CALCULATE (
SUM ( country_projection[projection] ),
FILTER (
ALLEXCEPT ( country_projection, country_projection[country] ),
country_projection[date] >= MIN ( 'Date'[Date] )
&& country_projection[date] <= MAX ( 'Date'[Date] )
)
),
,
DESC,
DENSE
)
Hola @v-xuding-msft Muchas gracias por la solución, esto funciona bien. ¡Excelente!
También tengo otra lógica que también funciona para mi requisito:
SumCountry = SUM(country_projection[projection])
RankCountry = IF(
ISFILTERED(country_projection[date]),
RANKX(
ALLSELECTED(country_projection[country]),[SumCountry],,DESC,Skip
)
)
En caso de duda, echa un vistazo a lo que Marco & Alberto dicen
https://www.daxpatterns.com/ranking/
Proud to be a Super User!
@amitchandak @harshnathani @Daviejoe @Pragati11 gracias a todos por la rápida respuesta. Traté de todas las sugerencias, pero todavía no funciona. He intentado por debajo de la medida con 'ALLEXCEPT, funciona un poco, pero la clasificación todavía no es correcta!!
Tengo sólo 3 en columnas de datos de origen, fecha, país y proyección. Por favor, hágamelo saber si tiene alguna sugerencia.
Hola @vin26 ,
Comparta algunos datos de ejemplo en formato de texto.
saludos
Harsh Nathani
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)
Hola @vin26 ,
¿Puedes compartir la captura de pantalla cuando probaste nuestro método de usar ALLSELECTED y cuál es la salida que obtienes?
¿Has probado esto:
Rank á RANKX(ALLSELECTED(country_projection), CALCULATE(SUM(country_projection[projection])),, DESC, Dense)
Gracias
Pragati
hola @vin26 ,
El scresnhot simplemente no me ayuda con ninguna descripción de por qué está mal.
¿Por qué crees que está mal? ¿Qué espera como salida al filtrar la fecha?
Gracias
Pragati
Hola @Pragati11 en la captura de pantalla adjunta 'Proyecciones' se ordenan en orden descendente, mi expectativa es obtener la clasificación en 1,2,3,4,... orden, pero si ves la medida 'Rank' muestra 1,1,1,1,1...
Hola @vin26 ,
Comparta algunos datos de ejemplo para que podamos intentar replicar el problema.
Gracias
Pragati
@Pragati11 Por favor, encuentre el archivo de muestra en el siguiente enlace, hay 30K filas de datos, lo he reducido a 1k
https://www.dropbox.com/s/qphhj10lu5qjta7/Ranking.pbix?dl=0
@vin26 , Rango siempre se calcula en el nivel lo que es más bajo .
en este caso tratar
rankx(all(Table[country]),calculate(sum(table[projection])),desc,dense)
Para rango Consulte estos enlaces
https://radacad.com/how-to-use-rankx-in-dax-part-2-of-3-calculated-measures
https://radacad.com/how-to-use-rankx-in-dax-part-1-of-3-calculated-columns
https://radacad.com/how-to-use-rankx-in-dax-part-3-of-3-the-finale
https://community.powerbi.com/t5/Community-Blog/Dynamic-TopN-made-easy-with-What-If-Parameter/ba-p/3...
hola @vin26 ,
Prueba esta medida
Medida: RANKX(ALLSELECTED( Country_projection[Country], Country_projection[projection]), CALCULATE(SUM(Country[projection)),,DESC)
saludos
Harsh Nathani
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)
Rango de Rango (Rank)
RANKX (
ALLSELECTED (
CALCULATE ( SUM (country_projection[proyección de país])),
DESC)
Proud to be a Super User!