[英]excel vba remove duplicates
我有下表:
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
我想在姓名,電子郵件地址和日期上進行匹配。 如果找到了現有記錄,那么我想將它們合並並將總計加在一起。 例如
Test2,12,test1@hotmail.com 12/05/2015
Test2,12,test1@hotmail.com 12/05/2015
會成為
Test2,24,test1@hotmail.com 12/05/2015
我有什么選擇? 如果我順序地進行迭代並檢查每個行,則將花費大量的時間。(正在考慮使用范圍檢查並針對所有行檢查當前行,如果找到,則刪除並添加新行)。將感謝一些示例。
您可以添加第5列和CONCAT
列Name,Email,Date,並在其間添加逗號。 例如Test1,test1@hotmail.com,12/12/2012
。
將此列導出到另一張表中,然后應用“ Remove duplicates
以便獲得唯一的數據。
現在,根據此列應用SUMIF
並將Total中的數據求和為:
SUMIF(range:"your tabel",criteria: the 5th column, sum range: column Total)
為什么不簡單地讓E列像這樣求和:
=SUMIFS(B:B,A:A,"="&A2,C:C,"="&C2,D:D,"="&D2)
何時完成復制為值並使用功能區上的功能刪除重復項? 這樣,您可以將E列的末尾復制到B列,並在幾分鍾內完成編輯:清晰性和步驟
將以下公式放在單元格E1中,並將其向下拖動,直到它位於E列的全部中,直到數據結束
=SUMIFS(B:B,A:A,"="&A2,C:C,"="&C2,D:D,"="&D2)
將E列復制到E列- 作為值
使用Excel的刪除重復項功能
將E列復制到B列
這就是完成任務所需的全部步驟。
假設:
如果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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.