How to combine duplicate rows and sum the values in Excel?
In Excel，you may always meet this problem, when you have a range of data which contains some duplicate entries, and now you want to combine the duplicate data and sum the corresponding values in another column, as following screenshots shown. How could you solve this problem?
Advanced Combine Rows:(Combine duplicate rows and sum / average corresponding values):
Kutools for Excel: with more than 200 handy Excel add-ins, free to try with no limitation in 60 days. Download and free trial Now!
The Consolidate is a useful tool for us to consolidate multiple worksheets or rows in Excel, so with this function, we can also summarize multiple rows based on the duplicates. Please do with the following steps:
1. Click a cell where you want to locate the result in your current worksheet.
2. Go to click Data > Consolidate, see screenshot:
3. In the Consolidate dialog box:
- (1.) Select Sum from Function drop down list;
- (2.) Click button to select the range that you want to consolidate, and then click Add button to add the reference to All references list box;
- (3.) Check Top row and Left column from Use labels in option. See screenshot:
4. After finishing the settings, click OK, and the duplicates are combined and summed. See screenshot:
Note: If the range do not have the header row, you need uncheck Top row from the Use labels in option.
The following VBA code also can help you consolidate duplicate rows in the worksheet, but at the same time, the original data will be destroyed, you need to backup a copy of the data.
1. Hold down the ALT + F11 keys, then it opens the Microsoft Visual Basic for Applications window.
2. Click Insert > Module, and paste the following code in the Module Window.
VBA code: Combine duplicate rows and sum the values
Sub CombineRows() 'Update 20130829 Dim WorkRng As Range Dim Dic As Variant Dim arr As Variant On Error Resume Next xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8) Set Dic = CreateObject("Scripting.Dictionary") arr = WorkRng.Value For i = 1 To UBound(arr, 1) Dic(arr(i, 1)) = Dic(arr(i, 1)) + arr(i, 2) Next Application.ScreenUpdating = False WorkRng.ClearContents WorkRng.Range("A1").Resize(Dic.Count, 1) = Application.WorksheetFunction.Transpose(Dic.keys) WorkRng.Range("B1").Resize(Dic.Count, 1) = Application.WorksheetFunction.Transpose(Dic.items) Application.ScreenUpdating = True End Sub
3. Then press F5 key to run this code, and you need to select the range that you want to consolidate in the popped out prompt box. See screenshot:
4. And then click OK, the duplicate rows have been combined and the values are added up.
Note: If you want to use this code, you’d better make a copy of the file to avoid destroying the data, and this code is only applied to two columns.
Here, I introduce the handy tool -- Kutools for Excel for you, its Advanced Combine Rows also can quickly do a favor to solve this problem.
|Kutools for Excel : with more than 120 handy Excel add-ins, free to try with no limitation in 60 days. Get it Now .|
After installing Kutools for Excel, please do as follows:
1. Select the range you need and click Kutools > Content > Advanced Combine Rows. See screenshot:
2. In the Advanced Combine Rows dialog, check My data has headers if your range have headers, and select column name which you want to combine the duplicates and click Primary Key, see screenshot:
3. And then select the column name you want to sum the values and click Calculate > Sum or other calculations as you need. See screenshot:
4. Click Ok to close dialog, then you can see the duplicates are combined and the corresponding data in another column are added up together. See screenshots:
Sometimes, you want to combine the rows based on duplicate values in another column, the Advanced Combine Rows of Kutools for Excel also can do a favor for you, please do as follows:
1. Select the data range that you want to use, and then click Kutools > Content > Advanced Combine Rows to enable the Advanced Combine Rows dialog box.
2. In the Advanced Combine Rows dialog box, click the column name that you want to combine other data based on, and click Primary Key, see screenshot:
3. And then click another column name that you want to combine the data, and click Combine to choose a separator to separate your combined values, see screenshot:
4. Then click Ok, all the values with the same cell in column A have been combined together, see screenshots:
Recommended Productivity Tools
Bring handy tabs to Excel and other Office software, just like Chrome, Firefox and new Internet Explorer.
Amazing! Increase your productivity in 5 minutes. Don't need any special skills, save two hours every day!
200 New Features for Excel, Make Excel Much Easy and Powerful:
- Merge Cell/Rows/Columns without Losing Data.
- Combine and Consolidate Multiple Sheets and Workbooks.
- Compare Ranges, Copy Multiple Ranges, Convert Text to Date, Unit and Currency Conversion.
- Count by Colors, Paging Subtotals, Advanced Sort and Super Filter,
- More Select/Insert/Delete/Text/Format/Link/Comment/Workbooks/Worksheets Tools...
To post as a guest, your comment is unpublished.· 1 months agoYou guys are awesome! You have saved me so much productivity. Cant thank you guys enough
To post as a guest, your comment is unpublished.· 8 months agoHow to make VBA code to add totals for 12 columns
To post as a guest, your comment is unpublished.· 8 months agoReally Thank you your explain realy helpful
To post as a guest, your comment is unpublished.· 10 months agoas usual perfect Ideas and Projects , thank you all :-)
To post as a guest, your comment is unpublished.· 11 months agoDear Sir
What if i have 3 Cloumns ?
Node1 Node2 Length
R1 J1 30 J1=113
J1 J2 29
J1 J3 54
J3 J4 47
J3 J5 27
J5 J6 19
J5 J7 17
J7 J8 10
J7 J9 56
J9 J10 96
J9 J11 29
J11 J12 34
J12 J13 10
J12 J14 49
Can i use this for 3 columns.