У меня есть данные с кодом Scrip в 1-м столбце.Исходя из этого, мне нужно добавить все значения в соседние строки и поместить его в столбцы «E» и «F».У меня есть таблица ниже.
Column E = Column C - Column D
если отрицательное значение, то
Column F = Column C -Column D
Данные:
XXX 10548 300000 0 0 0
XXX 12798 25000 0 0 0
XXX 90078 25000 2500 0 0
YYY 10412 0 500 0 0
YYY 10548 500 0 0 0
ZZZ 10548 0 750 0 0
ZZZ 10975 750 0 0 0
ZZZ 12086 0 3000 0 0
Теперь я хочу сгруппировать столбец E и столбец F на основестолбец с повторяющимся значением A. См. таблицу ниже.
Базовая формула sum("C2:C5") - Sum("D2:D5")
в столбце E и столбце F
XXX 10548 300000 0 325000 -
XXX 12798 25000 0
XXX 90078 25000 25000
YYY 10412 0 500 - -
YYY 10548 500 0
ZZZ 10548 0 750 0 -3000
ZZZ 10975 750 0
ZZZ 12086 0 3000
Я нашел код, но теперь могу манипулировать, так как я не могуУ меня много знаний о Dictionary
.
Sub Test()
Dim Rng As Range, Dn As Range, n As Long, nRng As Range
Dim x As Double
Set Rng = Range(Range("A2"), Range("A" & Rows.Count).End(xlUp))
With CreateObject("scripting.dictionary")
.CompareMode = vbTextCompare
For Each Dn In Rng
'Debug.Print Dn.Address
'Debug.Print Dn.Value
'Debug.Print Dn.Offset(, 2)
'Debug.Print Dn.Offset(, 3)
'Debug.Print Dn.Offset(, 4)
If Not .Exists(Dn.Value) Then
.Add Dn.Value, Dn
Else
If nRng Is Nothing Then Set nRng = _
Dn Else Set nRng = Union(nRng, Dn)
'Debug.Print .item(Dn.Value).Offset(, 2)
'Debug.Print Dn.Offset(, 2)
x = (.item(Dn.Value).Offset(, 2) + Dn.Offset(, 2)) ' - (.item(Dn.Value).Offset(, 3) + Dn.Offset(, 3))
'.item(Dn.Value).Offset(, 2) = (.item(Dn.Value).Offset(, 2) + Dn.Offset(, 2)) - (.item(Dn.Value).Offset(, 3) + Dn.Offset(, 3))
'.item(Dn.Value).Offset(, 4) = x
End If
Next
End With
End Sub
Пожалуйста, помогите мне решить эту проблему.