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 这样做:

  1. Select 你的 LetterColumn 然后是 Transform / GroupBy:

  2. Select 添加列/自定义列:

  3. 单击新自定义列右上角的反向箭头以从新自定义列中提取值:

  1. 删除所有数据列。