我有下表:
Name, Total, Email Address Date
Test1,12,test1@hotmail.com 12/12/2012
Test2,12,test1@hotmail.com 12/05/2015
Test2,12,test1@hotmail.com 12/05/2015
Test3,12,test1@hotmail.com 12/07/2016
我希望在姓名,电子邮件地址和日期上进行匹配。如果找到现有记录,那么我想合并它们并将总计加在一起。 e.g。
Test2,12,test1@hotmail.com 12/05/2015
Test2,12,test1@hotmail.com 12/05/2015
会变成
Test2,24,test1@hotmail.com 12/05/2015
我有哪些选择?如果我按顺序迭代并检查每一个它将花费大量时间..(正在考虑使用范围检查并检查当前行对所有,如果找到然后删除并添加新行)。将欣赏一些示例。
答案 0 :(得分:2)
您可以在它们之间添加第5列和CONCAT
列名称,电子邮件,日期和逗号。例如。 Test1,test1@hotmail.com,12/12/2012
。
将此列导出到另一个工作表中并应用Remove duplicates
,以便您拥有唯一数据。
现在根据此列应用SUMIF
并将Total中的数据汇总为:
SUMIF(range:"your tabel",criteria: the 5th column, sum range: column Total)
答案 1 :(得分:0)
为什么不简单地让E列加上像这样的值:
{
newTeamId: "2"
playerId: "1"
}
当您完成复制值并使用功能区上的功能删除重复项时?这样,您可以在结束列E复制到B列,并在几分钟内完成 编辑:清晰度和步骤
将以下公式放在单元格E1中,并将其向下拉,直到它在E列的所有列中直到数据结束
=SUMIFS(B:B,A:A,"="&A2,C:C,"="&C2,D:D,"="&D2)
将列E复制到E列 - 作为值
使用excel 删除重复功能
将E栏复制到B栏
这就是完成任务所需的全部步骤。
答案 2 :(得分:0)
假设:
如果ColA相同,则C和D
也是如此Dim i As Integer
Dim cellCount As Integer
cellCount = Application.CountA(Range("A:A")) - 1
For i = 4 To cellCount
If (Cells(i, "A").Value = Cells(i + 1, "A").Value) Then
Cells(i, "B").Value = Cells(i, "B").Value + Cells(i + 1, "B").Value
End If
Next i
ActiveSheet.Range("A:D").RemoveDuplicates Columns:=1, Header:=xlYes