The code below is an example of a do-while loop within another do-while loop.

Sub ConditionalSum()
Application.ScreenUpdating = False 'speed up code
Range("C2:D65536").Clear ' clear prev results
Range("C2").Select 'starting cell
Do Until IsEmpty(ActiveCell.Offset(0, -1).Value) ' do until last cell
lReturnSum = 0 'start with zero
Do Until ActiveCell.Offset(0, -2).Value <> ActiveCell.Offset(1, -2).Value 'do until a different date is found
lReturnSum = lReturnSum + ActiveCell.Offset(0, -1).Value 'add values of same dates
'count occurances of a date
numwords = Application.CountIf(Sheets("Sheet1").Ran
ge("A2", Range("A65536").End(xlUp)), ActiveCell.Offset(0, -2).Value)
ActiveCell.Offset(1, 0).Select 'select next cell below
Loop
lReturnSum = lReturnSum + ActiveCell.Offset(0, -1).Value 'sum
ActiveCell.Value = lReturnSum 'write the sum
ActiveCell.Offset(0, 1).Value = ActiveCell.Value / numwords 'write divided value
ActiveCell.Offset(1, 0).Select 'select next cell below
Loop
Application.ScreenUpdating = True
End Sub