如何合并具有相同名称的行并合并每个相关列的数据

如何合并具有相同名称的行并合并每个相关列的数据

我需要合并具有相同名称的行,并保留每列的数据。例如,如果我们在第一列“Name”上有两行名为“Mr Bean”的行,则合并与名为“Mr Bean”的行相关的每列数据,然后删除第二行和第三行,将所有数据仅放在名为“Mr Bean”的第一行中。因此,我们应该将与一个人相关的所有数据放在一行中,而不是放在多行中。

+-------------------------------------------------------+
| Column Name   Column 2   Column 3   Column 4 Column 5 |
| Mr Bean        2           3                          |
| Mr Bean                    2          3        5      |
| Mr X           3                      3               |
| Mr Y           2           4          1        3      |
+-------------------------------------------------------+

期望输出:

+-------------------------------------------------------+
| Column Name  Column 2    Column 3   Column 4 Column 5 |
| Mr Bean        2         3, 2          3        5     |
| Mr X           3                       3              |
| Mr Y           2          4            1        3     |
+-------------------------------------------------------+

我的 Excel 文件大约有 4000 行和 450 列。

答案1

这应该可以满足您的要求,请根据需要进行修改-

Sub combine()
Application.ScreenUpdating = False
Dim c As Range
Dim i As Integer

For Each c In Range("A2", Cells(Cells.SpecialCells(xlCellTypeLastCell).Row, 1))
Label:
If c = c.Offset(1) And c <> "" Then
       For i = 1 To 4
            If c.Offset(1, i) <> "" Then
                If c.Offset(, i) = "" Then
                c.Offset(, i) = c.Offset(1, i)
                Else: c.Offset(, i) = c.Offset(, i) & "," & c.Offset(1, i)
                End If
            End If
       Next
       c.Offset(1).EntireRow.Delete
       GoTo Label
End If

Next
Application.ScreenUpdating = True
End Sub

相关内容