Power BI如何创建每行含唯一值列表的新列
Power BI 列表文本去重保留格式实现方法
问题背景
现有CSV文件存在格式如下的列,单元格内容为带方括号包裹的逗号分隔文本:
column_1 [text1,text2,text2] [text3,text3,text1]
需要新建一列,每行保留原有的方括号列表格式,同时移除列表内的重复值,预期输出效果:
column_1 new_column [text1,text2,text2] [text1,text2] [text3,text3,text1] [text3,text1]
原有代码问题
之前尝试的Power Query M代码存在核心问题:最后调用Text.Combine将去重后的元素拼成了无格式的纯文本,没有补回外层方括号,最终输出不符合列表格式要求。原有代码片段如下:
let... #"Added Custom" = Table.AddColumn(#"Renamed Columns", "Custom", each Text.Combine(List.Distinct(List.Transform(Text.Split(Text.BetweenDelimiters([Input], "[", "]"), ","), each Text.BetweenDelimiters(_, """" , """" ))), ","), type text) in #"Added Custom"
实现步骤
- 导入CSV数据后进入Power Query编辑器,确认目标列是文本格式
- 点击顶部菜单栏「添加列」→「自定义列」,根据需求选择对应公式:
- 如果需要新列是带方括号的文本格式(和原列展示效果完全一致),输入以下公式:
each "[" & Text.Combine(List.Distinct(Text.Split(Text.Trim([column_1], {"[","]"}), ",")), ",") & "]"- 如果需要新列是Power Query原生列表类型(支持后续展开、列表计算操作),输入以下公式:
each List.Distinct(Text.Split(Text.Trim([column_1], {"[","]"}), ","))
若原列表的元素外层包裹双引号,可将原有代码中去除双引号的逻辑嵌套到
List.Transform方法中使用即可。
内容的提问来源于stack exchange,提问作者codelifevcd
相关产品推荐
相关产品推荐

