Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

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
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors