合并单元格值如果重复存在

如果列A中存在重复项,我想合并列B中的值

AB 123 A 123 B 123 C 456 D 456 E 789 F 

我的输出应该是这样的

  AB 123 ABC 456 DE 789 F 

我有大量的数据,这是很难手动,所以你们有任何想法在Excel中的macros?

任何帮助将不胜感激..感谢提前

如果你想在同一个单元格中产生的数据存在原始数据,即不在单元10中,那么你必须将源数据存储在二维数组中。 然后从数组中我们使用上面的代码将数据插入原始数据存在的相同位置。 这里上去完成任务:

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim names(2 To 7, 2) For i = 2 To 7 names(i, 1) = Cells(i, 1) names(i, 2) = Cells(i, 2) Next On Error Resume Next: Sheet1.Cells.Clear cnt = 2 For i = 2 To 7 strg = strg + names(i, 2) If names(i + 1, 1) <> names(i, 1) Then Cells(cnt, 1) = names(i, 1) Cells(cnt, 2) = strg cnt = cnt + 1 strg = "" End If Next End Sub 

请注意,我已经声明了具有两个维数的数组来存储数据。 然后search数组得到结果。

我会作弊,并使用下面的公式: 1)按列Asorting

2)在col C中,添加一个公式来testing当前是最后一个(假设有一个头部,把它放在C2中

 =if(A2<>A3,TRUE,FALSE) 

现在,这只适用于一系列相同ID中的最后一个单元格

3)在Col D中,如果ID相同,则添加连接公式,

 =if(A2=A1,D1&" "&B2,B2) 

4)过滤C列,只显示每个系列中的最后一个单元格。

干杯。

您可以使用下面的macros:

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) cnt = 10 For i = 2 To 7 strg = strg + Cells(i, 2) If Cells(i + 1, 1) <> Cells(i, 1) Then Cells(cnt, 1) = Cells(i, 1) Cells(cnt, 2) = strg cnt = cnt + 1 strg = "" End If Next End Sub 

所请求的数据将从单元格10打印