x
Solved

# vba remove duplicates and sum the value

Posted on 2010-09-13
Medium Priority
1,112 Views
I have table as below

date     -         value      -       units
-------------   ------------      ------------
02/02/2000     32.30            23
03/02/2000     22.30            20
03/02/2000     62.30            21

if there more than one occurance of same date, i need to retain just one occurance and sum the values on same date

hence above table will look as below

date     -         value      -       units
-------------   ------------      ------------
02/02/2000     32.30            23
03/02/2000     84.60            41
0
Question by:cynx
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 3
• 2
• 2

LVL 50

Expert Comment

ID: 33661723
Hello cynx,

this looks like the perfect scenario for a pivot table.

Get started here: http://peltiertech.com/Excel/Pivots/pivotstart.htm

Post only dummy data, no confidential data, please.

cheers, teylyn
0

LVL 50

Expert Comment

ID: 33661762
see attached for a pivot table example based on your data

cheers, teylyn
pivot.xls
0

LVL 59

Accepted Solution

Saurabh Singh Teotia earned 2000 total points
ID: 33661814
Assuming your dates are in A Column starting from row-1 and you want to sum column b and column c values then you can use the following code..
Saurabh...

``````Sub moddata()
Dim rng As Range, cell As Range, r As Range
Dim lrow As Long, i As Long

Dim rng1 As Range, rng2 As Range

lrow = Cells(Cells.Rows.Count, "a").End(xlUp).Row

Set rng = Range("A2:A" & lrow)
Set rng1 = Range("b2:b" & lrow)
Set rng2 = Range("c2:c" & lrow)
i = 2

Do Until i > Cells(Cells.Rows.Count, "a").End(xlUp).Row

Set r = Range("A2:A" & i)

If Application.WorksheetFunction.CountIf(r, Cells(i, "a")) > 1 Then
Rows(i).Delete

Else
Cells(i, "b").Value = Application.WorksheetFunction.SumIf(rng, DateValue(Cells(i, "A").Value), rng1)
Cells(i, "c").Value = Application.WorksheetFunction.SumIf(rng, DateValue(Cells(i, "A").Value), rng2)

i = i + 1

End If
Loop

End Sub
``````
0

LVL 1

Author Comment

ID: 33661864
thanks guys, yes i am familiar with pivot tables, but i require this to be done thru vba since i am working on a macro and i am required to convert the files first in above format.

I will try saurabh's code and get back !
0

LVL 50

Expert Comment

ID: 33661887
@Saurabh...

Why use VBA when native Excel can provide the same functionality much more efficiently?

Isn't that counter-productive and against good practice and spreadsheet design?

Many askers want a VBA solution (apparently), but it seems they don't know about the functionality Excel offers without macros. Just because it can be done with VBA does not mean it's the best way to do it.

I'd go for the pivot table over a VBA solution any time. It's definitely faster and more flexible.

cheers, teylyn
0

LVL 59

Expert Comment

ID: 33661913
teylyn,
I thought about pivot table as well but when i re-read and tag zones he head visual basic programming and which gave me a feeler that he is looking for code solution which is just coming by my experience and that;s the reason a code..
Saurabh...
0

LVL 1

Author Comment

ID: 33665143
Thanks !

@teylyn: i preferred VBA solution, since i need to use these sheets as input to my macro. if there are 100s of such sheets, a click of button and let the code behind do the job is more productive rather user creating pivot for each !

@saurabh: the code works perfect as i require !

cheers,
mehul
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will diâ€¦
If you need to forecast numbers -- typically for finance -- the Windows and Mac versions of Excel 2016 have a basket of tools to get the job done.
This Micro Tutorial demonstrates how to create Excel charts: column, area, line, bar, and scatter charts. Formatting tips are provided as well.
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as formâ€¦
###### Suggested Courses
Course of the Month15 days, 7 hours left to enroll