我必须在power (DAX)中执行一项任务,其中有一个用户列表和他们的工作领域。我必须将每个用户对应的所有字段组合起来,并找到最高频率的组合。
下面是我打算怎么做的。如何从“示例”文件生成“预期结果”?
Sample:
ID Value
a medicine
b automobile
c banking
d scientist
a banking
a scientist
d banking
Expected Result:
ID Value Combi
a medicine|banking|scientist
b automobile
c banking
d scientist|banking发布于 2016-11-30 18:00:06
可以将多行的值连接起来,并使用CONCATENATEX() DAX函数生成分隔字符串。然后使用ADDCOLUMNS进行总结,得到所需的结果。
Expected Table =
SUMMARIZE (
ADDCOLUMNS (
'Table',
"Combined Value", CONCATENATEX (
FILTER (
SUMMARIZE ( 'Table', 'Table'[ID], [Value] ),
[ID] = EARLIER ( 'Table'[ID] )
),
'Table'[Value],
"|"
)
),
[ID],
[Combined Value]
)它产生:

分解逻辑
在我看来,最简单的方法是在表中创建计算列,以生成合并值列:
Combined Value =
CONCATENATEX (
FILTER (
SUMMARIZE ( 'Table', 'Table'[ID], [Value] ),
[ID] = EARLIER ( 'Table'[ID] )
),
'Table'[Value],
"|"
)然后,可以使用先前创建的计算列,根据表创建一个汇总表。若要创建计算表,请转到“建模”选项卡并单击New Table图标。

使用这个表达式:
Resumed Table =
SUMMARIZE ( 'Table', [ID], 'Table'[Combined Value] )你会得到这样一张桌子:

虽然这两种方法都能很好地工作,但解决此问题的推荐方法是直接从Power Query或您的来源。
如果这有帮助的话请告诉我。
https://stackoverflow.com/questions/40890672
复制相似问题