首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >功率BI:从给定条件的列中组合单元格

功率BI:从给定条件的列中组合单元格
EN

Stack Overflow用户
提问于 2016-11-30 14:18:06
回答 1查看 2.5K关注 0票数 0

我必须在power (DAX)中执行一项任务,其中有一个用户列表和他们的工作领域。我必须将每个用户对应的所有字段组合起来,并找到最高频率的组合。

下面是我打算怎么做的。如何从“示例”文件生成“预期结果”?

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-30 18:00:06

可以将多行的值连接起来,并使用CONCATENATEX() DAX函数生成分隔字符串。然后使用ADDCOLUMNS进行总结,得到所需的结果。

代码语言:javascript
复制
Expected Table =
SUMMARIZE (
    ADDCOLUMNS (
        'Table',
        "Combined Value", CONCATENATEX (
            FILTER (
                SUMMARIZE ( 'Table', 'Table'[ID], [Value] ),
                [ID] = EARLIER ( 'Table'[ID] )
            ),
            'Table'[Value],
            "|"
        )
    ),
    [ID],
    [Combined Value]
)

它产生:

分解逻辑

在我看来,最简单的方法是在表中创建计算列,以生成合并值列:

代码语言:javascript
复制
Combined Value =
CONCATENATEX (
    FILTER (
        SUMMARIZE ( 'Table', 'Table'[ID], [Value] ),
        [ID] = EARLIER ( 'Table'[ID] )
    ),
    'Table'[Value],
    "|"
)

然后,可以使用先前创建的计算列,根据表创建一个汇总表。若要创建计算表,请转到“建模”选项卡并单击New Table图标。

使用这个表达式:

代码语言:javascript
复制
Resumed Table =
SUMMARIZE ( 'Table', [ID], 'Table'[Combined Value] )

你会得到这样一张桌子:

虽然这两种方法都能很好地工作,但解决此问题的推荐方法是直接从Power Query或您的来源。

如果这有帮助的话请告诉我。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40890672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档