获取不同列中每个特定过滤器的列的总和

时间:2016-04-07 10:02:14

标签: excel vba macros

enter image description here 如何在第1列中的列" I" 中总结列" Q" Sheet1 STRONG>? 例如,参考上面的样本表; 只在Column" Q"中为27744的所有列I求和。 仅在列#34; Q" ...等等中为27745的所有列I求和。

然后总和将反映在 Sheet2 上,如下所示: enter image description here

专栏" Q" Sheet1中的条目总是不同的,上面只是一个例子。找到这个link,但我不知道在这种情况下是否可以使用它。

我希望我的问题很明确。提前感谢您的建议/帮助。

1 个答案:

答案 0 :(得分:0)

Would be nicer with cells and some tidying up but this should work -

Sub test()

    Dim dictSums As Scripting.Dictionary
    Set dictSums = New Scripting.Dictionary

    Dim rngTarget As Range
    Set rngTarget = Sheet1.Range("Q1")

    Do While rngTarget.Value <> ""
        With rngTarget
            If Not dictSums.Exists(.Value) Then
                dictSums.Add .Value, .Offset(0, -8).Value
            Else
                dictSums(.Value) = dictSums(.Value) + .Offset(0, -8).Value
            End If
        End With
        Set rngTarget = rngTarget.Offset(1, 0)
    Loop

    Dim varKey As Variant

    For Each varKey In dictSums.keys
        Debug.Print , varKey, dictSums(varKey)
    Next

End Sub