excel vba删除重复项
我有下面的表格:
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
我想匹配名称,电子邮件地址和date。 如果find一个现有的logging,那么我想合并它们并将总计加在一起。 例如
Test2,12,test1@hotmail.com 12/05/2015 Test2,12,test1@hotmail.com 12/05/2015
会成为
Test2,24,test1@hotmail.com 12/05/2015
我有什么select? 如果我顺序迭代,并检查每一个这将花费大量的时间..(正在考虑使用范围检查和检查当前行对所有,如果发现然后删除并添加一个新的行)。将欣赏一些例子。
您可以添加第五列和CONCAT
列名称,电子邮件,date,并在它们之间使用逗号。 例如Test1,test1@hotmail.com,12/12/2012
。
在另一个工作表中导出此列,然后应用Remove duplicates
以获得唯一的数据。
现在根据此列应用SUMIF
,并将Total中的数据汇总为:
SUMIF(range:"your tabel",criteria: the 5th column, sum range: column Total)
假设:
- 该列表按ColAsorting
- 您的表格标题在Row3中
- 只有一个重复
-
如果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
为什么不简单地有列E总和这样的值:
=SUMIFS(B:B,A:A,"="&A2,C:C,"="&C2,D:D,"="&D2)
当你完成复制作为价值观,并删除使用function区上的function重复? 这样你就可以在E列结尾复制到B列,并在编辑完成后的几分钟内完成:清晰度和步骤
那些是需要的步骤
-
将下面的公式放在单元格E1中,并将其拉下,直到它全部列E,直到数据结束
=SUMIFS(B:B,A:A,"="&A2,C:C,"="&C2,D:D,"="&D2)
-
将列E复制到列E – 作为值
-
使用Excel的删除重复function
-
将E列复制到B列
这就是完成您的任务所需的全部步骤。