将不同的字符串连接到一个新列中,按 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
中有不止这两列,此措施也有效
示例输入:
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
中有不止这两列,此措施也有效