Hi kevivu
This Code is in the attached and appears to do as required on your Sample Data. Make certain you have a Sheet named Sheet2. CTRL + x will fire the Code.
Option Explicit
Sub Test()
Dim LR As Long
Dim LR1 As Long
Sheets("Sheet2").Cells.Clear
With Sheets("Sheet1")
LR = .Cells.Find("*", .Cells(.Rows.Count, .Columns.Count), SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
.Range("A1:B" & LR).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("Sheet2").Range("A1"), Unique:=True
.Range(.Cells(1, "C"), .Cells(1, "F")).Copy Sheets("Sheet2").Range("C1")
End With
With Sheets("Sheet2")
LR1 = .Cells.Find("*", .Cells(.Rows.Count, .Columns.Count), SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
.Cells(2, "C").Formula = "=SUMIF(Sheet1!$B$2:$B" & LR & ",Sheet2!$B2,Sheet1!C$2:C" & LR & ")"
.Cells(2, "D").Formula = "=SUMIF(Sheet1!$B$2:$B" & LR & ",Sheet2!$B2,Sheet1!D$2:D" & LR & ")"
.Cells(2, "E").Formula = "=SUMIF(Sheet1!$B$2:$B" & LR & ",Sheet2!$B2,Sheet1!E$2:E" & LR & ")"
.Cells(2, "F").Formula = "=E2/C2"
.Range("C2:F2").AutoFill Destination:=.Range("C2:F" & LR1), Type:=xlFillDefault
.Range("F2:F" & LR1).NumberFormat = "0.00"
.Activate
End With
End Sub
Bookmarks