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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

rango basado en varias medidas en una tabla

Hola equipo,

Tengo los siguientes datos de ejemplo. Tengo que calcular la columna de rango (última columna resaltada) en función de las medidas: orden colocado, pedidos fallidos, diferencia. El artículo es la primera categoría, desglosada por subcategoría de artículos. Y el ranking debe agruparse por estas 2 categorías.

artículosubelementollaveestado del pedidopedidos realizados = recuento de claves en función del artículo, subelemento failed orders=recuento de claves donde erroró el estado del pedidodiferencia = orden realizada-orden fallidarango basado en el orden colocado, pedidos fallidos, diferencia agrupada por artículo y subelemento o rango = diff más alto obtiene el 1er rango, seguido del siguiente más alto como 2do rango y así sucesivamente. basado en el elemento, subelemento
A 2113(El elemento A obtiene el 3º rango basado en la 3ª diferencia más alta en todos los elementos)
regla 1111éxito2
regla 1112fracasado211i (dentro del ítem Una regla 1 obtiene el 1er rango basado en la diferencia y agrupado por ítem, subelemento)
B 5322 (el elemento B obtiene el 2º rango basado en la 2ª diferencia más alta en todos los elementos)
regla 1113fracasado110
regla 2114éxito4
regla 2115fracasado431i (dentro del ítem B regla 2 obtiene el 1er rango basado en la diferencia y agrupado por ítem,subelemento)
regla 2128fracasado431i
regla 2116fracasado431i
C 11471 (el elemento C obtiene el 1er rango basado en la diferencia)
regla 1117éxito4
regla 1118éxito4
regla 1119éxito4
regla 1120éxito4
regla 2121fracasado211Ii (dentro del ítem C regla 2 obtiene el 2º rango basado en la diferencia y agrupado por ítem,subelemento)
regla 2122éxito2
Artículo 3123éxito5
Artículo 3124éxito5
Artículo 3125fracasado532i (dentro del ítem C la regla 3 obtiene el 1er rango basado en la primera diferencia más alta y agrupado por ítem, subelemento)
Artículo 3126fracasado532i
Artículo 3127fracasado532i

Gracias de antemano.

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hola

No estoy seguro de si entendí su pregunta correctamente, pero por favor revise la imagen de abajo y el archivo pbix adjunto.

Todas las medidas están en el archivo pbix adjunto.

Picture1.png

Orders placed: = 
SWITCH (
    TRUE (),
    ISINSCOPE ( Data[Sub_Item_Key] ), SUM ( Data[Orders Placed] ),
    COUNTROWS ( VALUES ( Data[Key] ) )
)

Orders failed: = 
SWITCH (
    TRUE (),
    ISINSCOPE (  Data[Sub_Item_Key] ), SUM ( Data[Failed Orders] ),
    CALCULATE ( COUNTROWS ( VALUES ( Data[Key] ) ), Data[Order Status] = "Failed" )
)

Difference: =
( [Orders placed:] - [Orders failed:] )
    * DIVIDE ( [Orders failed:], [Orders failed:] )

Ranking: = 
VAR currentitem =
    MAX ( Data[Item] )
VAR subitemkeytable =
    CALCULATETABLE (
        SUMMARIZE ( ALL ( Data ), Data[Sub_Item_Key] ),
        Data[Item] = currentitem
    )
VAR itemtable =
    SUMMARIZE ( ALL ( Data ), Data[Item] )
RETURN
    SWITCH (
        TRUE (),
        ISINSCOPE ( Data[Sub_Item_Key] ), RANKX ( subitemkeytable, [Difference:],, DESC, DENSE ),
        ISINSCOPE ( Data[Item] ), RANKX ( itemtable, [Difference:],, DESC, DENSE )
    )
        * DIVIDE ( [Difference:], [Difference:] )

View solution in original post

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

Hola

No estoy seguro de si entendí su pregunta correctamente, pero por favor revise la imagen de abajo y el archivo pbix adjunto.

Todas las medidas están en el archivo pbix adjunto.

Picture1.png

Orders placed: = 
SWITCH (
    TRUE (),
    ISINSCOPE ( Data[Sub_Item_Key] ), SUM ( Data[Orders Placed] ),
    COUNTROWS ( VALUES ( Data[Key] ) )
)

Orders failed: = 
SWITCH (
    TRUE (),
    ISINSCOPE (  Data[Sub_Item_Key] ), SUM ( Data[Failed Orders] ),
    CALCULATE ( COUNTROWS ( VALUES ( Data[Key] ) ), Data[Order Status] = "Failed" )
)

Difference: =
( [Orders placed:] - [Orders failed:] )
    * DIVIDE ( [Orders failed:], [Orders failed:] )

Ranking: = 
VAR currentitem =
    MAX ( Data[Item] )
VAR subitemkeytable =
    CALCULATETABLE (
        SUMMARIZE ( ALL ( Data ), Data[Sub_Item_Key] ),
        Data[Item] = currentitem
    )
VAR itemtable =
    SUMMARIZE ( ALL ( Data ), Data[Item] )
RETURN
    SWITCH (
        TRUE (),
        ISINSCOPE ( Data[Sub_Item_Key] ), RANKX ( subitemkeytable, [Difference:],, DESC, DENSE ),
        ISINSCOPE ( Data[Item] ), RANKX ( itemtable, [Difference:],, DESC, DENSE )
    )
        * DIVIDE ( [Difference:], [Difference:] )

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!

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors