Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
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.
Resultado esperado:
salida
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