Forum Discussion

ngct1112's avatar
ngct1112
Post Patron
5 years ago
Solved

BASE RANKX en otras columnas

Hola a todos, estoy tratando de clasificar (de menor a más alto) una columna como abajo

1.) Clasificación de Productos (ASC): Clasificación de los "Productos" de mayor a menor

Esto está funcionando -

Ranking of Products(ASC)= RANKX( ALLSELECTED(Table),CALCULATE(SUM('Table'[Products])))

2.)Clasificación del costo (DESC): Clasificación del "coste" sólo cuando "Ranking de Productos (ASC)" - 1

Esto no funciona -

Ranking of cost(DESC) = IF([Ranking of Products(ASC)]=1,RANKX( ALLSELECTED(Table),CALCULATE(SUM('Table'[cost])),,ASC))

ArtículosProductosCosto más bajo
A512
B58
C55
D44
E27

Resultado deseado:

ArtículosProductosCosto Clasificación de productos (ASC)Clasificación de costes (DESC)
A512 13
B58 12
C55 11
D44 3
E27 2

¿Podría darme algunos consejos sobre la segunda medida? ¡Muchas gracias!

  • @ngct1112 , Probar como

    new Rank á RANKX( filter(ALLSELECTED(Table[Items],Table[Products]), Table[Products] ?max(Table[Products])), CALCULATE(SUM('Table'[cost])),,ASC)

    Clasificación del costo (DESC) - IF([Ranking of Products(ASC)]-1,[new Rank ], blank())

  • Hola @ngct1112 ,

    Para la lógica de la orden DESC y la orden ASC, puede ser incorrecta en el post original. Y lo he corregido en las siguientes fórmulas .

    Puede crear medidas como DAX a continuación.

    Ranking of Products(DESC) = RANKX( ALLSELECTED('Table'),CALCULATE(SUM('Table'[Products])), ,DESC,Dense)
    
    
    Ranking of cost(ASC) = IF('Table'[Ranking of Products(DESC)]=1, RANKX( FILTER(ALLSELECTED('Table'), 'Table'[Ranking of Products(DESC)]=1),CALCULATE(SUM('Table'[cost])),,ASC,Dense))
    

    205.png

    Saludos

    Amy

    Equipo de apoyo a la comunidad _ Amy

    Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

3 Replies

  • @ngct1112 , Probar como

    new Rank á RANKX( filter(ALLSELECTED(Table[Items],Table[Products]), Table[Products] ?max(Table[Products])), CALCULATE(SUM('Table'[cost])),,ASC)

    Clasificación del costo (DESC) - IF([Ranking of Products(ASC)]-1,[new Rank ], blank())

  • Anonymous's avatar
    Anonymous
    Not applicable
    • Si expression expression o value se evalúa como BLANK, se trata como un 0 (cero) para todas las expresiones que dan como resultado un número o como un texto vacío para todas las expresiones de texto.

    • Si value no está entre todos los valores posibles de expresión, RANKX agrega temporalmente valor a los valores de expression y reevalua RANKX para determinar el rango de valoradecuado.

    • Los argumentos opcionales se pueden omitir colocando una coma vacía (,) en la lista de argumentos, es decir, RANKX(Inventory, [InventoryCost],,,"Dense")

    • Esta función no se admite para su uso en el modo DirectQuery cuando se usa en columnas calculadas o reglas de seguridad de nivel de fila (RLS).

  • v-xicai's avatar
    v-xicai
    Community Support

    Hola @ngct1112 ,

    Para la lógica de la orden DESC y la orden ASC, puede ser incorrecta en el post original. Y lo he corregido en las siguientes fórmulas .

    Puede crear medidas como DAX a continuación.

    Ranking of Products(DESC) = RANKX( ALLSELECTED('Table'),CALCULATE(SUM('Table'[Products])), ,DESC,Dense)
    
    
    Ranking of cost(ASC) = IF('Table'[Ranking of Products(DESC)]=1, RANKX( FILTER(ALLSELECTED('Table'), 'Table'[Ranking of Products(DESC)]=1),CALCULATE(SUM('Table'[cost])),,ASC,Dense))
    

    205.png

    Saludos

    Amy

    Equipo de apoyo a la comunidad _ Amy

    Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.