|
Sub zz()
Dim d, ar
Set d = CreateObject("Scripting.Dictionary")
ar = Range("A1").CurrentRegion
[d17:j100].ClearContents
br = Range("A16").CurrentRegion
For i = 2 To UBound(ar)
d(ar(i, 1) & ar(i, 2)) = i
Next
For i = 2 To UBound(br)
ReDim kk(4 To UBound(br, 2))
For x = br(i, 1) To br(i, 2)
k = x & br(i, 3)
If d.exists(k) Then
For j = 4 To UBound(br, 2)
br(i, j) = br(i, j) + ar(d(k), j - 1)
If ar(d(k), j - 1) = "" Then kk(j) = kk(j) + ar(d(k), 3) Else kk(j) = kk(j) + 0
Next
End If
Next
On Error Resume Next
For y = 5 To UBound(br, 2)
br(i, y) = br(i, y) / (br(i, 4) - kk(y))
Next
Next
Range("A16").CurrentRegion = br
End Sub
|
|