Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
5 years ago
Solved

Luchando con RANKX

Hola de nuevo

Estoy luchando para conseguir un rango simple de trabajo, pero además de esto quiere una columna de clasificación adicional para mostrar el rango dentro de otra agrupación. Mi ejemplo pbx está adjunto, y este es el resultado que estoy tratando de lograr:

Resultados deseados con 2 x nuevas medidas de rango:

Rank desired.JPG

El rango general es solo el rango que desciende en función de la Puntuación Total. El rango de ubicación es el rango dentro de cada Location_Group.

Los datos son :.

UbicaciónLocation_GroupPuntuación
BirminghamMidlands2.6
ManchesterNorte3.1
TorquaySur2.1
BirminghamMidlands1.3
ManchesterNorte1.4
TorquaySur2.9
BirminghamMidlands3.6
ManchesterNorte1.2
TorquaySur4
BirminghamMidlands2.1
ManchesterNorte1.8
TorquaySur3.1
SolihullMidlands1.6
LeedsNorte2.1
PlymouthSur3.6
SolihullMidlands2.1
LeedsNorte0.5
PlymouthSur1.1
SolihullMidlands2.5
LeedsNorte3.1
PlymouthSur0.3
BradfordNorte2.5
CoventryMidlands1.6
PlymouthSur1.6
BradfordNorte2.9
CoventryMidlands3.4
PlymouthSur5.1
BradfordNorte2.6
CoventryMidlands0.9

Gracias

Roger

  • Syndicate_Admin's avatar
    Syndicate_Admin
    5 years ago

    @rogerdea

    He comprobado el archivo, es necesario insertar la ubicación y el grupo de ubicación de la tabla de áreas al objeto visual:

    Puede descargar el archivo: HERE

    Fowmy_0-1610798819071.png

    Location Rank = 
    
    RANKX(
        ALLSELECTED(Areas[Location]),
        CALCULATE(SUM(Scores[Score]))
    )
    
    --------------------------------------------------------
    
    Overall Rank = 
    
    RANKX(
        ALLSELECTED(Areas[Location],Areas[Location_Group]),
        CALCULATE(SUM(Scores[Score]))
    )

    ________________________

    Si mi respuesta fue útil, haga clic en Aceptarla como la solución para ayudar a otros miembros a encontrarla útil

    Haga clic en el icono Thumbs-Up si le gusta esta respuesta 🙂


    Sitio web Youtube Linkedin



7 Replies

  • @rogerdea

    Estas son las dos medidas de clasificación:

    Overall Rank = 
    
    RANKX(
        ALL(T9[Location],T9[Location_Group]),
        CALCULATE(SUM(T9[Score]))
    )
    location Rank = 
    
    RANKX(
        ALL(T9[Location]),
        CALCULATE(SUM(T9[Score]))
    )

    ________________________

    Si mi respuesta fue útil, haga clic en Aceptarla como la solución para ayudar a otros miembros a encontrarla útil

    Haga clic en el icono Thumbs-Up si le gusta esta respuesta 🙂


    Sitio web Youtube Linkedin

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      Muchas gracias y tengo el DAX más simple trabajando sin embargo ahora me he dado cuenta en mi trabajo real en lugar de este ejemplo el [Location_Group] se almacena en otra tabla. Y el uso de este dax a continuación me da el error al intentar utilizar el location_group en esta otra tabla:

      "Todos los argumentos de columna de la función ALL/ALLNOBLANKROW/ALLSELECTED/REMOVEFILTERS deben ser de la misma tabla."

      Así que para el DAX:

      RANKX ?

      ALL(T9[Ubicación]),T9[Location_Group]),

      CALCULATE(SUM(T9([Score]))

      )

      Si T9[Location_Group]) era de otra tabla en el powerBI, ¿cómo podría funcionar o escribirse?

      Gracias

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Administrator

        @rogerdea

        ¿Cuál es la relación entre las tablas? ¿Puede compartir un archivo PBIX ficticio que represente su modelo real?

        ________________________

        Si mi respuesta fue útil, haga clic en Aceptarla como la solución para ayudar a otros miembros a encontrarla útil

        Haga clic en el icono Thumbs-Up si le gusta esta respuesta 🙂


        Sitio web Youtube Linkedin

  • No @rogerdea ,

    Puede intentar algo de la siguiente manera: Cree 2 columnas RANK calculadas de la siguiente manera:

    Rango total: RANKX('Table', CALCULATE(SUM('Table'[Score]), FILTER(ALL('Table'),'Table'[Location] ? EARLIER('Table'[Location]))), , ASC, Dense)
    Rango de ubicación : RANKX('Table', CALCULATE(SUM('Table'[Score]), FILTER(ALL('Table'),'Table'[Location_Group] ? EARLIER('Table'[Location_Group]))), , ASC, Dense)
    El resultado que obtiene es el siguiente:

    rank.png

    Gracias

    Pragati