Excel PowerQuery:如何连接分组值?

Excel PowerQuery:如何连接分组值?,excel,group-by,powerquery,excel-2016,m,Excel,Group By,Powerquery,Excel 2016,M,如果我有下表(如下图所示),我如何编写分组查询来连接分组结果 对于本例,我希望按LetterColumn分组并连接NumberColumn 因此,预期的结果将是: 如果您的表是源,并且NumberColumn具有数字类型,则这将起作用: =Table.Group(Source,{“LetterColumn”},{“Column”,每个Text.Combine(List.Transform({[NumberColumn],(x)=>Number.ToText(x)),“,”,键入Text}) T

如果我有下表(如下图所示),我如何编写分组查询来连接分组结果

对于本例,我希望按
LetterColumn
分组并连接
NumberColumn

因此,预期的结果将是:


如果您的表是源,并且NumberColumn具有数字类型,则这将起作用:

=Table.Group(Source,{“LetterColumn”},{“Column”,每个Text.Combine(List.Transform({[NumberColumn],(x)=>Number.ToText(x)),“,”,键入Text})

Table.Group
执行Group by操作,该操作创建一个表,该表由LetterColumn中具有相同值的所有行组成<代码>.[NumberColumn]给出了此新表中NumberColumn列中的值列表。
List.Transform
部分将数字转换为文本值,
text.Combine
将这些数字连接在一起,并用逗号分隔每个值

如果还需要周围的引号,可以执行以下操作:

=Table.Group(Source,{“LetterColumn”},{“Column”,each''和Text.Combine(List.Transform({[NumberColumn],(x)=>Number.ToText(x)),“,”&“”,键入Text}})


表示”字符,并结合两个文本值。

您可以使用GUI这样做:

  • 选择您的LetterColumn,然后选择Transform/GroupBy:

  • 选择添加列/自定义列:

  • 单击new AllData列右上角的反向箭头,从new AllData列中提取值:

  • 删除所有数据列


  • 天才!你怎么找到[AllData][NumberColumn]语法?我使用这个工具已经4年了,以前从未见过。我真的不记得@MikeHoney了,但我可能在过去从marcelbeug的回复中看到过它。我从他那里学到了很多。或者……或者我只是尝试了一下,它就起了作用。;0)天哪,这是天才1。这是绝对的天才!2.WTF不擅长有一个简单的连接函数吗?@marcpincence,我也成功地使用了你的方法一年多了,但我在O365中看到了与@PE相同的问题。我相信PQ生成了不正确的列表扩展。我看到了:
    each Text.Combine(list.Transform(_,Text.From),…)
    -尽管选择了逗号,但字面上是点-点。如果我将
    更改为
    ,“
    ,世界秩序将恢复。。。