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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
Rice
Helper I
Helper I

RankX Tie Break alfabéticamente

Hola a todos,

Sólo estoy buscando una manera de romper los lazos rankx alfabéticamente en DAX basado en una columna secundaria (como Nombre de categoría) sin usar una columna de índice. Tengo un simple objeto visual de tabla que muestra las 10 categorías principales según el recuento de categorías. Necesito rankx para romper los lazos alfabéticamente basado en el nombre de la categoría para mostrar sólo los 10 valores principales y no más.

Puedo romper la corbata usando la función aleatoria o basada en la fecha, pero por desgracia no puedo averiguar cómo romperlo basado en el texto.

He investigado muchas soluciones en la web y en este sitio, pero ninguna parece ayudar con esto específicamente.

Cualquier ayuda sería muy apreciada.

Atentamente.

5 REPLIES 5
v-gizhi-msft
Community Support
Community Support

Hola

Puede sin poder combinar el rankx con la categoría.

Por favor, pruebe esta medida:

Measure = MAX('Table'[Category])&"-"&RANKX(ALLSELECTED('Table'),CALCULATE(COUNT('Table'[Category])),,DESC,Dense)

A continuación, aplíquelo al objeto visual estableciendo top 10 basado en esta medida, se muestra:

6.PNG

Espero que esto ayude.

Saludos

Giotto

Vvelarde
Community Champion
Community Champion

@Rice

Hola, Prueba con este DAX

Nota: Debe ajustar se encuentra en Nombres de columna y Filtro superior 10.

Ranking =
RANKX (
    ALLSELECTED ( 'Table'[Pais] );
    'Table'[TotalPoints]
        + DIVIDE (
            RANKX (
                ALLSELECTED ( 'Table'[Pais] );
                CALCULATE ( MIN ( 'Table'[Pais] ) );
                ;
                DESC;
                DENSE
            );
            1000
        )
)

saludos

Victor




Lima - Peru

Esto funcionó como un encanto. Parecía que mi problema era tratar de incluir el recuento de categorías como una variable en lugar de una medida. Estúpido error. ¡Gracias por la ayuda!

DAX final para mí:

Var Ranks = 
    RANKX(
        ALLSELECTED('Table'[Category]),
        [Category Count] + DIVIDE(
            RANKX(
                ALLSELECTED('Table'[Category]),
                CALCULATE(MIN('Table'[Category])),,DESC,Dense), 
                100000))
RETURN
    IF (
        ISBLANK ( 'TopN'[TopN Value] ),
        ranks,
        IF ( Ranks <= 'TopN'[TopN Value], [Category Count], BLANK () )
    )

Hola @Rice,

Yo también tengo el mismo problema que el tuyo y puedo ayudar a explicar esta parte a continuación.

   IF (
        ISBLANK ( 'TopN'[TopN Value] ),
        ranks,
        IF ( Ranks <= 'TopN'[TopN Value], [Category Count], BLANK () )
    )

Básicamente, está diciendo:

Si el valor topN está en blanco, muestra todos los rangos, de lo contrario, muestra solo los rangos con un valor menor que el conjunto de parámetros topN.

Documentación de parámetros para DAX: https://learn.microsoft.com/en-us/power-bi/transform-model/desktop-what-if

Sin embargo, también recomendaría comenzar su propia publicación en lugar de revivir algo de hace 4 años.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

November Carousel

Fabric Community Update - November 2024

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

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

Top Solution Authors
Top Kudoed Authors