0

我有一个表,其中包含同一个人的重复项,我想将它们合并为一行,同时总结分配给每行数据的两列。

例如: 在此处输入图像描述

我想通过使用 A 列作为匹配内容的“参考点”来合并 A 到 D 列中的数据。然后我希望将这些值添加到 E 列和 F 列中。给我下面的结果。

在此处输入图像描述

我确信有一个简单的解决方案,但我对 VBA 很陌生,还没有遇到任何事情。

谢谢

4

1 回答 1

0

这可以使用以下代码来完成:

Sub foo()
LastRow = Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row
For x = 2 To LastRow
    Sheet1.Cells(x, 7).Value = "=SUMIF(R1C1:R17C6,RC[-6],C[-2])"
    Sheet1.Cells(x, 8).Value = "=SUMIF(R1C1:R17C6,RC[-7],C[-2])"
Next x

Range("G2:H" & LastRow).Copy
Range("G2:H" & LastRow).PasteSpecial Paste:=xlPasteValues, operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("E2:F" & LastRow).Delete Shift:=xlToLeft
Sheet1.Range("$A$1:$H$" & LastRow).RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8), Header:=xlNo
End Sub

本质上,代码将 G 和 H 列中的所有值相加,然后复制并粘贴为值(以摆脱单元格上的公式),然后删除 E 和 F 列中的内容,向左移动以带来新值到正确的列,最后它会删除所有重复项,以便为您提供所需的编译列表。

于 2017-11-23T13:46:04.650 回答