将不同的字符串连接到一个新列中,按 ID 分区?

Concatenate distinct strings in to a new column, partitioned by an ID?

示例输入:

ID Enjoys
Alice Coke
Alice Biscuits
Alice Lemonade
Bob Coke
Bob Apples
Bob Apples
Charlie Milk

期望的输出:

ID New Col
Alice CokeBiscuitsLemonade
Bob CokeApples
Charlie Milk

到目前为止我一直在尝试的是

CONCATENATEX
(
    SUMMARIZE(
              INPUT_TABLE,
              'INPUT_TABLE'[ID],
              'INPUT_TABLE'[Enjoys],
             )
    DISTINCT('INPUT_TABLE'[Enjoys])
)

但这是语法错误。至于使用

CONCATENATEX
(
    DISTINCT(SUMMARIZE(
              INPUT_TABLE,
              'INPUT_TABLE'[ID],
              'INPUT_TABLE'[Enjoys],
             ))
    'INPUT_TABLE'[Enjoys]
)

这似乎忘记了我正在尝试按 ID 进行分区。在这种情况下,我怀疑每一行都会 return "CokeBiscuitsLemonadeApplesMilk"。

获得此输出的正确 DAX 是什么?

试试这个:

NewTable = 
SUMMARIZE(INPUT_TABLE,INPUT_TABLE[ID],"concat",CONCATENATEX(DISTINCT(INPUT_TABLE[Enjoys]),INPUT_TABLE[Enjoys]))

将其添加为度量:

CONCATENATEX(distinct(FILTER(selectcolumns(allselected(INPUT_TABLE),"ID",INPUT_TABLE[ID],"Enjoys",INPUT_TABLE[Enjoys]),[ID] = selectedvalue(INPUT_TABLE[ID]))),[Enjoys])

即使您的 INPUT_TABLE

中有不止这两列,此措施也有效