cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Obtenga el Top N de una categoría por un valor usando la función DAX RANKX() y un desempate.

Pensé que estaba siguiendo el patrón proporcionado en la publicación: Rompiendo empates en las clasificaciones con RANKX usando Multipl ... - Microsoft Power BI Communit...cuando escribí el DAX a continuación. No se equivoca, y está más cerca de lo que quiero, pero no es lo que quiero.

Leo documentación (creo) sobre RANKX y veo que "Devuelve el rango de una expresión evaluada en el contexto actual en la lista de valores para la expresión evaluada para cada fila en la tabla especificada.", que es un acertijo si alguna vez hubo uno, y la sintaxis es:

RANKX(

[, ] [, ] [, ]).

El problema es la confusión causada por el hecho de que este es un RANKX con un RANKX() + DIVIDE() anidado como expresión, por lo que estoy perdido tratando de obtener un top 5, ordenando por A descendente, luego B ascendente.

RankedByMoney(CareGapsToPotential) =
RANKX(ALL('HN_CHIP'),
RANKX (ALL('HN_CHIP'), 'HN_CHIP'[MoneyLeftOnTable], , ASC)
+ DIVIDIR(
RANKX(ALL('HN_CHIP'), 'HN_CHIP'[cgToMaxPotential]),
(COUNTROWS(ALL('HN_CHIP')) + 1)
)
)

Obtuve:

mohassan99_0-1652070726934.png

Estaba tratando de descender por "Dinero dejado sobre la mesa", luego ascender por "Brechas de cuidado al potencial". ¿Cómo lo haría?

¿Puedes ayudarme a poner ese 'ASC' en el lugar correcto @amitchandak?

Gracias

Mo

,
1 ACCEPTED SOLUTION

Creé un rango en MS SQL Server usando ROW_NUMBER() OVER(PARTITION BY ... PEDIDO POR...)

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Hi, @mohassan99 ;

Pruébalo.

RankedByMoney(CareGapsToPotential) =
RANKX (
    ALL ( HN_CHIP ),
    RANKX ( ALL ( HN_CHIP ), 'HN_CHIP'[Money Left on the Table],, ASC )
        * ( COUNTROWS ( 'HN_CHIP' ) + 1 )
        + RANKX ( ALL ( HN_CHIP ), 'HN_CHIP'[Care Gaps to Potential],, DESC )
)

El resultado final se muestra a continuación:

vyalanwumsft_0-1652334643839.png


Saludos
Equipo de soporte de la comunidad _ Yalan Wu
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Creé un rango en MS SQL Server usando ROW_NUMBER() OVER(PARTITION BY ... PEDIDO POR...)

Syndicate_Admin
Administrator
Administrator

@amitchandak

Ahora tengo esto:

mohassan99_0-1652076458351.png

¿Podría deshabilitarse el filtro manual sobre "Medir" para que podamos estar seguros de que no está interfiriendo con el cálculo de DAX? Brechas de atención.... debería estar ascendiendo dentro de un valor de dinero....

Gracias

Mo

Syndicate_Admin
Administrator
Administrator

@mohassan99 , Compruebe si esto puede ayudar

RankedByMoney(CareGapsToPotential) =
RANKX(ALL('HN_CHIP'),
RANKX (ALL('HN_CHIP'), 'HN_CHIP'[MoneyLeftOnTable], , ASC)
+ DIVIDIR(
RANKX(ALL('HN_CHIP'), 'HN_CHIP'[cgToMaxPotential],,asc),
(COUNTROWS(ALL('HN_CHIP')) + 1)
) ,,asc
)

Helpful resources

Announcements
June 2022 update 768X460.jpg

Check it out!

Click here to read more about the June 2022 updates!

Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

Power BI Dev Camp Session 23 768x460.jpg

Check it Out!

Mark your calendars and join us on Thursday, June 30 at 11a PDT for a great session with Ted Pattison!

June 20 episode 7 with aka link 768x460.jpg

The Power BI Community Show

Join us on June 20 at 11 am PDT when Kim Manis shares the latest on Azure Synapse analytics, the Microsoft Intelligent Data Platform, and notable Power BI Updates from Microsoft Build 2022.