Сумма смежной строки повторяющегося значения в одном столбце - PullRequest
0 голосов
/ 23 октября 2018

У меня есть данные с кодом 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

Пожалуйста, помогите мне решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...