x
Solved

# Excel VB-Add total price where date is the same

Posted on 2009-03-31
Medium Priority
476 Views
Hi,

Please view the snapshot. I'm trying to add the total price (column "Z") where the date (i.e. serial date) is the same (column "X"). Then have the total for each date copied to Column "AA".

For instance, where column "X" = 39788 get the value of column "Z" for the given row. Then let Column "AA" row 2 = 39788 and Column "AB" row 2 = (total of column "Z" where "X" = 39788).

Hope that makes sense.

Thank you,
vkimura
excel-aggregate-total-where-date.png
0
Question by:Victor Kimura
• 3

LVL 50

Expert Comment

ID: 24034868
can you pls post a sample file as opposed to a picture :)
Cheers
Dave
0

Author Comment

ID: 24035004
Hi brettdj,

Okay, here it is.
excel-aggregate-total-where-date.xls
0

Author Comment

ID: 24035112
I have this thus far where the commented numbers below the Dims are the serial dates. Everything is manually fixed. I'm thinking create an array with the serial dates and loop through them.

Sub MatchSerialDate2()
Dim N As Long
Dim payForDay As Long
Dim totalPayForDay As Long
' 39788,39795,39786,39793,39787,39794,39785,39792
For N = 2 To 3
If Cells(N, 24) = 39788 Then
payForDay = Cells(N, 19) 'pay for the given row
totalPayForDay = Cells(2, 29) 'aggregate toal pay for the day
Cells(2, 29) = payForDay + totalPayForDay
Cells(2, 28) = 39788
End If
Next N
End Sub
0

LVL 59

Accepted Solution

Saurabh Singh Teotia earned 2000 total points
ID: 24035297
Vkumra,
Is this what you are looking for..?
Saurabh...

``````Sub MatchSerialDate2()
Dim rng As Range, rng1 As Range, cell As Range, rng2 As Range, I As Long
Set rng = Range("X2:X" & Cells(65536, "X").End(xlUp).Row)
Set rng1 = Range("Z2:Z" & Cells(65536, "X").End(xlUp).Row)
I = 2
For Each cell In rng
Set rng2 = Range("AA2:AA" & I)
If cell.Value = cell.Offset(0, 1).Value And Application.WorksheetFunction.CountIf(rng2, cell.Value) = 0 Then
Range("AA" & I).Value = cell.Value
Range("AB" & I).Value = Application.WorksheetFunction.SumIf(rng, cell.Value, rng1)
I = I + 1
End If
Next cell

End Sub
``````
0

Author Closing Comment

ID: 31565111
Thank you, saurabh726. That works.
0

## Featured Post

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.