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
DMis
Regular Visitor

ALLSELECTED y RANKX no funcionan como se esperaba

He pasado las últimas 10 horas más o menos tratando de clasificar un solo campo filtrado por algunos otros campos y nada funciona. Me está volviendo loco, cuando veo una entrada de blog que enumera mi solución, copiarlo y todavía no funciona.

De todos modos, tengo este modelo y datos:

pbi1.PNGModelopbi3.PNGDatos de marcaspbi2.PNGDatos de los estudiantes

MarkRank es una columna calculada utilizando esta fórmula:

MarkRank á RANKX(ALLSELECTED(Marks), Marks[Mark])

En la pantalla de abajo se puede ver que calcula el rango correctamente sobre todo el conjunto de datos.

pbi4.PNGVista initital

Sin embargo, cuando filtro por año (o por escuela o ambos, no importa) obtengo esto:

pbi5.PNGClasificación incorrecta

Puede ver que no vuelve a calcular la clasificación como debe ser para clasificar solo los valores mostrados.

Traté de cambiar la fórmula a algo como esto:

MarkRank á RANKX(ALLSELECTED(Marks[StudentID]), Marks[Mark])
O
MarkRank á RANKX(ALLSELECTED(Marks[Year]), Marks[Mark])
y produciría sólo 1 independientemente del campo que elija en ALLSELECTED.
pbi6.PNG
En última instancia, todo lo que necesito es tener la clasificación calculada exclusivamente sobre los valores seleccionados utilizando filtros de cualquier tabla, Marcas o Estudiantes.
Enlace de descarga para el proyecto PBI: https://file.io/BkfZ8UmI
8 REPLIES 8
amitchandak
Super User
Super User

Gracias Amit.

He visto estos artículos. No creo que mi problema radica en lo que se describe allí, sino más bien en ALLSELECTED.

@DMis

Si desea tener un valor dinámico, intente crear medidas en lugar de una columna.

Necesitas dos medidas por separado, prueba algo como:

Mark measure = Sum(Marks[Mark])

Rank Mark = RANKX(ALLSELECTED('Marks'),Mark measure,,Dese,Dense)

Equipo de Apoyo Comunitario Paul Zheng _
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola Paul,

Hecho más lectura y parece que tiene razón en que debo usar medidas si necesito tener el rango recalculado en tiempo de ejecución basado en los valores filtrados seleccionados por el usuario.

Siguiendo su consejo creé dos medidas contra la tabla Marcas:

MM = SUM(Marks[Mark])
MarkRankMeasure = RANKX(ALLSELECTED(Marks),[MM],,DESC,Dense)

Luego agregué MarkRankMeasure a la vista de informe y tenía todos los registros multiplicados

pbi7.PNG

La ventaja es que el rango se calcula correctamente ahora. Sin embargo, ¿qué puedo hacer con la multiplicación de filas?

@DMis

En este caso, tendría que clasificar por otras columnas (por ejemplo, studentID). Así que usted debe tener 3 medidas en total:

MM = SUM(Marks[Mark])
ID= Sum(Marks([StudentID])

Final Rank = 
RANKX ( 
    ALL ( 'Table' ),
    RANKX ( ALL ( 'Table' ), [MM],, ASC )
        + DIVIDE (
            RANKX ( ALL ( 'Table' ), [ID],, DESC ),
            ( COUNTROWS ( ALL ( 'Table' ) ) + 1 )
        ))

Equipo de Apoyo Comunitario Paul Zheng _
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Paul

¿Puede explicar por qué está sucediendo esto en primer lugar? Por la breve mirada a la nueva fórmula que proporcionó, no estoy seguro de lo que se supone que debe hacer, para ser honesto.

Sólo quiero aclarar que en la última captura de pantalla primeros 20 registros es como se supone que es, pero hay un exceso producido, que es todo lo que no tiene valor MM. Si simplemente filtro todas las filas que no tienen valor MM, obtengo el resultado deseado.

Sin embargo, todavía no entiendo cómo es que RANKX produce filas adicionales, que nunca existieron en el conjunto de datos para empezar. Si estás teniendo un problema desconocido.

@DMis

Pensé que las filas adicionales son de la tabla original. Ahora soy un poco confuso, puedes compartir esa muestra de pibx.

El detalle de la lógica de la medida vino de este post: https://community.powerbi.com/t5/Desktop/How-to-Rank-a-list-based-on-2-values-double-rankX/td-p/4400...

Equipo de Apoyo Comunitario Paul Zheng _
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola @V-pazhen-msft ,

El enlace al proyecto se encuentra en la parte inferior de la publicación original.

Te agradezco que te hayas metido en esto.

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.