按特定值连接重复值

Rek*_*kcs 3 excel vba excel-formula powerquery

在 Excel 上,我尝试将两种颜色放在一行中,并用分号分隔。如果鳕鱼和名称相同,则必须将两种颜色连接在一行中。

我拥有的:

在此输入图像描述

我想要得到什么:

在此输入图像描述

Ron*_*eld 5

您可以在 Power Query 中使用 Table.Group 方法和自定义聚合来执行此操作。

根据您在问题中的评论,我假设您不想保留原始颜色列(仅第一行),但如果不是这种情况,很容易添加回来。

使用 Power Query

  • 选择数据表中的某个单元格
  • Data => Get&Transform => from Table/Range
  • 当 PQ 编辑器打开时:Home => Advanced Editor
  • 记下第 2 行中的表名称
  • 将下面的 M 代码粘贴到您所看到的位置
  • 将第 2 行中的表名称更改回最初生成的名称。
  • 阅读评论并探索Applied Steps以理解算法

M代码

let

//Change next line to reflect actual data source
    Source = Excel.CurrentWorkbook(){[Name="Table17"]}[Content],

//set data types
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Cod", type text}, {"Name", type text}, {"Color", type text}}),

//Group by Cod amd Name, then aggregate by combining the colors
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Cod","Name"}, {
        {"Colors", each Text.Combine(List.Distinct(_[Color]),";")}})
in
    #"Grouped Rows"
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • @MayukhBhattacharya我不相信他想要这样,但如果他想要,他只需添加一个聚合`{“第一种颜色”,每个[颜色] {0},输入文本},` (2认同)