专栏名称: PowerBI星球
海量干货,帮你轻松上手 Power BI
目录
相关文章推荐
刘润  ·  令人费解的“董明珠健康家” ·  昨天  
界面新闻  ·  权威报告:中国软实力排名上升至全球第二 ·  3 天前  
界面新闻  ·  小行星2024 YR4撞击地球概率升至3.1% ·  3 天前  
界面新闻  ·  格力官方回应专卖店改名董明珠健康家 ·  3 天前  
51好读  ›  专栏  ›  PowerBI星球

Power Query如何处理文本连接的问题?

PowerBI星球  · 公众号  ·  · 2024-03-18 11:31

正文

经常遇到有人问如何将相同类型的文本连接成一个字符串,以下面这个数据为例,如何从左表变成右表:
根据之前介绍过的 CONCATENATEX 函数 (参考: 用一个度量值返回列表?CONCATENATEX函数你应该掌握 ,只需要写一个度量值就可以直接实现这个需求:

名称列表 =
CONCATENATEX(
'示例数据',
[名称],
","
)

用表格展示如下:
不过如果想在PowerQuery中做这种转换,应该怎么做呢?
其实也很简单,只需要下面两个步骤:

1. 分组
点击转换>分组依据,在弹出的窗口中,选择按类型分组,操作是“所有行”,如下图。

2. 修改M公式
分组之后,会有一个新列,不要直接展开,而是修改分组步骤的M公式,原公式为:

Table.Group(源,{"类型"},{{"名称", each _ , type table [类型=nullable text, 名称=nullable text]}})


然后将其中的下划线_它修改为Text.Combine([名称],","),type及后面的语句删掉。
修改后的M公式如下:

Table.Group(源, {"类型"}, {{"名称", each Text.Combine([名称],",") }})


然后就实现了同类型名称连接到一起的效果:

还有一种情况是,如果名称文本有重复的,按上述连接到一起后也会重复,比如类型A中有两个A2,文本合并后的效果就变成了下面这样:
如果不想在合并后的文本中出现重复值,只需要名称字段外面套一个List.Distinct就可以了,上面的Text.Combine表达式改成:

Text.Combine( List.Distinct ( [名称] ),"," )







请到「今天看啥」查看全文