首页 > 解决方案 > Excel:连接具有公共字段值的所有行的单元格

问题描述

在 Excel 中,对于在 ID 列中具有匹配数据的所有行,我需要将数据从一列连接到另一列。

然后,我将丢弃除单个项目和第一个项目之外的所有项目,因此我确实需要将数据内联保持在新列中,而不是通过新表或工作表。

例如。

ID 数据组合          
A 苹果 苹果
B 梨 梨 香蕉
B 香蕉梨 香蕉
C 樱桃
D 苹果 苹果 桃 梨
D 桃 苹果 桃梨
D 梨 苹果桃梨

我查看了基于公共单元格的连接 (Excel) 行,包括不同的列Excel: Group values from rows based on common cell value,但这两种解决方案都不是我想要的。

我的工作表有大约 90 列,所以它有点像野兽。

感谢任何关于这一点的指示或指导。

非常感谢

标签: excelexcel-formula

解决方案


POWER QUERY 方法- 在 Excel 2010 和更高版本中可用

请参阅本文以了解如何在您的 Excel 版本上使用 Power Query。我的演示是使用Excel 2016

假设您已将数据范围放入Table,使用From Table函数将其添加到 Power Query 编辑器,它应该如下所示:

步骤 1 从表

然后使用编辑器选项卡下的Group By功能Transform对数据进行分组,如下图所示:

步骤 2 分组依据

转到公式栏并替换公式如下

= Table.Group(#"Changed Type", {"ID"}, {{"Sum", each Text.Combine([DATA], " "), type text}})

关键是将List.Sum后面eachText.Combine函数替换为Power Query M语言的函数。

该表将更新为:

第 3 步 - 文本合并

然后,您可以关闭并将此查询的输出加载到新工作表(默认情况下)。

这是幕后的完整代码,仅供参考。

let
    Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", type text}, {"DATA", type text}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"ID"}, {{"Sum", each Text.Combine([DATA], " "), type text}})
in
    #"Grouped Rows"

如果您有任何问题,请告诉我。干杯:)


推荐阅读