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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Rastrillaje para cada jerarquía en Matrix

Hola

Recientemente he intentado calcular el rango para cada columna en la jerarquía de la matriz, puedo calcular hasta 2 niveles, pero cuando hay más de 2 niveles o columnas involucradas, da una salida incorrecta.

Hice un poco de I + D y encontré esta solución por Harsh, él está calculando la clasificación para 4 niveles / columna, pero cuando intento eliminar la columna de la ciudad y cambiar la medida dax, da una salida incorrecta.


¿Alguien puede ayudarme con lo que estoy haciendo mal?

Adjunto debajo del pbix con datos de muestra y medida dax existente.

¡Gracias!

Medida exisitng dax:

Ranking - Duro =
DÓNDE _Channel_Ranking =
CALCULAR(
RANKX( TODO( Sales_Data[Canal] ) , [TotalSales] , , DESC ) ,
TODO( Customer_Data[Nombres de clientes] ) ,
TODO( Regions_Table[Ciudad] ) ,
TODO( Products_Data[Nombre del producto] ) )

DÓNDE _Customer_Ranking =
CALCULAR(
RANKX( TODO( Customer_Data[Nombres de clientes] ) , [TotalSales] , , DESC ) ,
TODO( Regions_Table[Ciudad] ) ,
TODO( Products_Data[Nombre del producto] ) ,
TODOSSELECCIONADOS( Sales_Data[Canal] ) )

DÓNDE _City_Ranking =
CALCULAR(
RANKX( TODO( Regions_Table[Ciudad] ) , [TotalSales] , , DESC ) ,
TODO( Products_Data[Nombre del producto] ) ,
TODO( Customer_Data[Nombres de clientes] ) ,
TODOSSELECCIONADOS( Sales_Data[Canal] ) )

DÓNDE _Product_Ranking =
CALCULAR(
RANKX( TODO( Products_Data[Nombre del producto] ) , [TotalSales] , , DESC ) ,
TODO( Customer_Data[Nombres de clientes] ) ,
TODOSSELECCIONADOS( Regions_Table[Ciudad] ) ,
TODOSSELECCIONADOS( Sales_Data[Canal] ) )

DÓNDE _Results =
INTERRUPTOR( VERDADERO() ,
ISINSCOPIO( Products_Data[Nombre del producto] ) , _Product_Ranking ,
ISINSCOPIO( Regions_Table[Ciudad] ) , _City_Ranking ,
ISINSCOPIO( Customer_Data[Nombres de clientes] ) , _Customer_Ranking ,
ISINSCOPIO( Sales_Data[Canal] ) , _Channel_Ranking ,
ESPACIO EN BLANCO() )

DEVOLUCIÓN
_Results

Quiero eliminar la ciudad de esta jerarquía (solo habrá 3 niveles: canal, nombres de clientes, nombres de productos)
He eliminado la ciudad de la jerarquía y he modificado la medida en consecuencia, pero aún así, da una salida incorrecta.

Enlace Gdrive: - https://drive.google.com/file/d/1wEJb9DdRHqUMNTX_YTE-ZbeJlSdktKcn/view?usp=sharing

Anany_0-1655733233878.png

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

@Anany ,

Por favor, modifique su medida.

Ranking - Harsh = 
VAR _Channel_Ranking = 
CALCULATE( 
    RANKX( ALL( Sales_Data[Channel] ) , [TotalSales] , , DESC ) ,
        ALL( Customer_Data[Customer Names] ) , 
        ALL( Regions_Table[City] ) , 
        ALL( Products_Data[Product Name] ) )

VAR _Customer_Ranking = 
CALCULATE(
    RANKX( ALL( Customer_Data[Customer Names] ) , [TotalSales] , , DESC ) , 
        ALL( Regions_Table[City] ) , 
        ALL( Products_Data[Product Name] ) ,
        ALLSELECTED( Sales_Data[Channel] ) )

VAR _City_Ranking = 
CALCULATE( 
    RANKX( ALL( Regions_Table[City] ) , [TotalSales] , , DESC ) , 
        ALL( Products_Data[Product Name] ) , 
        ALL( Customer_Data[Customer Names] ) , 
        ALLSELECTED( Sales_Data[Channel] ) )

VAR _Product_Ranking = 
RANKX(ALLSELECTED(Products_Data[Product Name]),CALCULATE(SUM(Sales_Data[Total Revenue])),,DESC)

VAR _Results = 
SWITCH( TRUE() , 
    ISINSCOPE( Products_Data[Product Name] ) , _Product_Ranking ,
    ISINSCOPE( Customer_Data[Customer Names] ) , _Customer_Ranking , 
    ISINSCOPE( Sales_Data[Channel] ) , _Channel_Ranking , 
BLANK() )

RETURN
_Results

vpollymsft_0-1655965105884.png

Saludos

Equipo de apoyo a la comunidad _ Polly

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Hola @v-polly-msft

¿Puede explicar que ha utilizado la columna ciudad en la medida cuando no está incluyendo esa columna en particular en la matriz? Si elimino la ciudad de la medida, da la salida incorrecta.

@Anany ,

Puede intentar usar la columna de ciudad en la medida. Cuando eliminas la columna de la ciudad, el rankx sigue funcionando bien. Incluso si lo agregas, todavía funciona.

Ranking - Harsh = 
VAR _Channel_Ranking = 
CALCULATE( 
    RANKX( ALL( Sales_Data[Channel] ) , [TotalSales] , , DESC ) ,
        ALL( Customer_Data[Customer Names] ) , 
        ALL( Regions_Table[City] ) , 
        ALL( Products_Data[Product Name] ) )

VAR _Customer_Ranking = 
CALCULATE(
    RANKX( ALL( Customer_Data[Customer Names] ) , [TotalSales] , , DESC ) , 
        ALL( Regions_Table[City] ) , 
        ALL( Products_Data[Product Name] ) ,
        ALLSELECTED( Sales_Data[Channel] ) )

VAR _City_Ranking = 
CALCULATE( 
    RANKX( ALL( Regions_Table[City] ) , [TotalSales] , , DESC ) , 
        ALL( Products_Data[Product Name] ) , 
        ALL( Customer_Data[Customer Names] ) , 
        ALLSELECTED( Sales_Data[Channel] ) )

VAR _Product_Ranking = 
RANKX(ALLSELECTED(Products_Data[Product Name]),CALCULATE(SUM(Sales_Data[Total Revenue])),,DESC)

VAR _Results = 
SWITCH( TRUE() , 
    ISINSCOPE( Products_Data[Product Name] ) , _Product_Ranking ,
    ISINSCOPE( Customer_Data[Customer Names] ) , _Customer_Ranking , 
    ISINSCOPE(Regions_Table[City]),_City_Ranking,
    ISINSCOPE( Sales_Data[Channel] ) , _Channel_Ranking , 
BLANK() )

RETURN
_Results

vpollymsft_0-1655966531615.png

Puede comparar la diferencia entre las dos medidas y las dos imágenes.

Saludos

Equipo de apoyo a la comunidad _ Polly

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

@v-polly-msft Muchas gracias. Funciona muy bien.

Syndicate_Admin
Administrator
Administrator

@Anany ,

¡Funciona bien! ¿Podría usar otra matriz en una nueva página?

vpollymsft_0-1655953937330.png

Había algo mal con la cortadora de dátiles. Por favor, haga un cheque.

Si he entendido mal su significado, proporcione más detalles con la salida deseada.

¿Cómo crear un rango dinámico en Matrix con jerarquía?

Saludos

Equipo de apoyo a la comunidad _ Polly

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Hola @v-polly-msft

Gracias por probarlo, sin embargo, mi resultado deseado es calcular el rango para cada columna / jerarquía.

A nivel de canal, su ranking funciona bien pero si voy al segundo y tercer nivel que nombres de clientes, Nombres de producto da la salida incorrecta.

Anany_0-1655959897508.png

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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