PowerQuery:如何连接分组值?
PowerQuery: How can I concatenate grouped values?
如果我有以下 table(如下图所示),我该如何编写一个分组查询来连接分组结果?
对于这个例子,我想按 LetterColumn
分组并连接 NumberColumn
所以期望的结果是:
如果您的 table 是 Source,并且 NumberColumn 具有数字类型,那么这将起作用:
= Table.Group(Source, {"LetterColumn"}, {{"Column", each Text.Combine(List.Transform(_[NumberColumn], (x) => Number.ToText(x)), ","), type text}})
Table.Group
执行分组操作,创建一个 table 由 LetterColumn 中具有相同值的所有行组成。 _[NumberColumn]
给出了这个新 table 中 NumberColumn 列中值的列表。 List.Transform
部分将数字转换为文本值,Text.Combine
将这些数字连接在一起,并用逗号分隔每个值。
如果你还需要周围的引号,你可以这样做:
= Table.Group(Source, {"LetterColumn"}, {{"Column", each """" & Text.Combine(List.Transform(_[NumberColumn], (x) => Number.ToText(x)), ",") & """", type text}})
""""
代表"字符,&组合两个文本值。
您可以使用 GUI 这样做:
Select 你的 LetterColumn 然后是 Transform / GroupBy:
Select 添加列/自定义列:
单击新自定义列右上角的反向箭头以从新自定义列中提取值:
- 删除所有数据列。
如果我有以下 table(如下图所示),我该如何编写一个分组查询来连接分组结果?
对于这个例子,我想按 LetterColumn
分组并连接 NumberColumn
所以期望的结果是:
如果您的 table 是 Source,并且 NumberColumn 具有数字类型,那么这将起作用:
= Table.Group(Source, {"LetterColumn"}, {{"Column", each Text.Combine(List.Transform(_[NumberColumn], (x) => Number.ToText(x)), ","), type text}})
Table.Group
执行分组操作,创建一个 table 由 LetterColumn 中具有相同值的所有行组成。 _[NumberColumn]
给出了这个新 table 中 NumberColumn 列中值的列表。 List.Transform
部分将数字转换为文本值,Text.Combine
将这些数字连接在一起,并用逗号分隔每个值。
如果你还需要周围的引号,你可以这样做:
= Table.Group(Source, {"LetterColumn"}, {{"Column", each """" & Text.Combine(List.Transform(_[NumberColumn], (x) => Number.ToText(x)), ",") & """", type text}})
""""
代表"字符,&组合两个文本值。
您可以使用 GUI 这样做:
Select 你的 LetterColumn 然后是 Transform / GroupBy:
Select 添加列/自定义列:
单击新自定义列右上角的反向箭头以从新自定义列中提取值:
- 删除所有数据列。