Sub Macro2()
On Error Resume Next
Dim arr, brr, crr, d, wb As Workbook, i&, j%
Set d = CreateObject("scripting.dictionary")
arr = Range("a1").CurrentRegion
ReDim brr(1 To UBound(arr) - 2, 1 To 5)
Application.ScreenUpdating = False
wj = Application.GetOpenFilename
If wj <> False Then Set wb = GetObject(wj)
crr = wb.Sheets(1).Range("a1").CurrentRegion
wb.Close 0
For i = 4 To UBound(crr)
z = crr(i, 2) & "," & crr(i, 3) & "," & crr(i, 4)
For j = 5 To 9
zf = z & "," & crr(3, j)
d(zf) = d(zf) + crr(i, j)
Next
Next
For i = 3 To UBound(arr)
z = arr(i, 2) & "," & arr(i, 3) & "," & arr(i, 4)
For j = 5 To 9
zf = z & "," & arr(2, j)
brr(i - 2, j - 4) = d(zf)
Next
Next
Range("e3").Resize(UBound(brr), 5) = brr
Application.ScreenUpdating = True
End Sub