根据公共列值合并 Excel 行

根据公共列值合并 Excel 行

我有一张类似下图的表格。A 列有重复的值,而 B 列有与 A 列对应的值。例如,一个客户可以有多个订单。

在此处输入图片描述

我想要做的是合并这些行,以便每个唯一的 A 列值(客户)只有一行,并且在该行的 B 列中,所有 B 列值(订单)都聚集在以逗号分隔的列表中。

答案1

Power Query您可以使用Windows Excel 2010+ 和 Office 365 中提供的 来生成结果。

使用 Power Query

  • 在数据表中选择一些单元格
  • Data => Get&Transform => from Table/Range
  • 当 PQ 编辑器打开时:Home => Advanced Editor
  • 记下表格姓名在第 2 行
  • 将下面的 M 代码粘贴到您所看到的位置
  • 将第 2 行的表名改回最初生成的表名。
  • 阅读评论并探索Applied Steps以了解算法
let
    Source = Excel.CurrentWorkbook(){[Name="Table29"]}[Content],

    //Note that we type "order" as text -- so as to be able to use in next step without converting.
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer", type text}, {"Order", type text}}),

    //Group rows and aggregate the text string
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Customer"}, {
        {"Order", each Text.Combine([Order],","), type text}
        })
in
    #"Grouped Rows"

数据和结果
在此处输入图片描述

答案2

如果您使用的是 Office 2019/365,TEXTJOIN 函数为此提供了便利。

=TEXTJOIN(",",1,IF(A:A=D2,B:B,""))

在此处输入图片描述

相关内容