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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Cómo mostrar los 3 mejores clientes en la misma fila por país

Hola, ¿cómo mostrar los clientes principales 1, 2 y 3 principales en cada país en la misma fila como la salida esperada a continuación?

Estos son los datos de ejemplo.

PBI_newuser_2-1709015546694.png


Resultado esperado:

PBI_newuser_0-1709015517591.png

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@PBI_newuser

salida

Daniel29195_0-1709018758167.png

Cree los siguientes tres compases:

Top1 countries = 
var ds =
CALCULATETABLE(
SUMMARIZE(
    'Table',
    'Table'[Country],
    D_Client[Client]),
    REMOVEFILTERS(D_Client[Client])
)

var ds_add = 
ADDCOLUMNS(
    ds,
    "rank" , 
    CALCULATE(
        RANKX(
            ds,
           CALCULATE(SUM('Table'[Amount])),
           ,
           DESC,
           Dense
        )
    )
)

VAR ds_add_filter = 
FILTER(
    ds_add,
    [rank]  = 1 )


    RETURN 
    CONCATENATEX( ds_add_filter, D_Client[Client], ",")
  

Top2 countries = 
var ds =
CALCULATETABLE(
SUMMARIZE(
    'Table',
    'Table'[Country],
    D_Client[Client]),
    REMOVEFILTERS(D_Client[Client])
)

var ds_add = 
ADDCOLUMNS(
    ds,
    "rank" , 
    CALCULATE(
        RANKX(
            ds,
           CALCULATE(SUM('Table'[Amount])),
           ,
           DESC,
           Dense
        )
    )
)

VAR ds_add_filter = 
FILTER(
    ds_add,
    [rank]  = 2 )


    RETURN 
    CONCATENATEX( ds_add_filter, D_Client[Client], ",")
  

Top3 countries = 
var ds =
CALCULATETABLE(
SUMMARIZE(
    'Table',
    'Table'[Country],
    D_Client[Client]),
    REMOVEFILTERS(D_Client[Client])
)

var ds_add = 
ADDCOLUMNS(
    ds,
    "rank" , 
    CALCULATE(
        RANKX(
            ds,
           CALCULATE(SUM('Table'[Amount])),
           ,
           DESC,
           Dense
        )
    )
)

VAR ds_add_filter = 
FILTER(
    ds_add,
    [rank]  = 3 )


    RETURN 
    CONCATENATEX( ds_add_filter, D_Client[Client], ",")
  

NB:
En la instrucción return, agregue el if ( hasonevalue .... condición, de modo que elimine los datos en el nivel total.

puede cambiar concatenateX con

SELECTCOLUMNS(ds_add_filter , D_Client[Cliente])
Espero que esto ayude.
Nota : si desea tener varios tops basados en otras medidas (que no sean el monto de las ventas). , digamos top 10 , sería preferible crear un grupo de cálculo instread de crear múltiples medidas .
Si mi respuesta te ayudara a resolver las cosas, agradecería un pulgar hacia arriba 👍 y lo marcaría como la solución
Marca la diferencia y también podría ayudar a alguien más. ¡Gracias por difundir las buenas vibraciones! 🤠

Hola @Daniel29195 , gracias! ¡Funciona!

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

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.