2016-04-07 6 views
0

enter image description here Как я могу суммировать все в колонки «I» для каждого фильтра в колонки «Q» в Лист1? Например, ссылаясь на лист образца выше; Суммировать весь столбец I для 27744 только в столбце «Q». Сумма всех столбец I для 27745 только в колонке "Q" ... и так далее ..Получить сумму столбца для каждого конкретного фильтра в различной колонке

Тогда сумма будет отражать на Sheet2, как показано ниже: enter image description here

В колонке "Q" записи в Sheet1 всегда разные, вышеприведенный пример. Нашел это link, но я не знаю, может ли он использоваться в этом случае.

Надеюсь, мой вопрос ясен. Заранее благодарю за консультацию/помощь.

+0

Что вы пробовали? Что не так с тем, что вы пробовали? Я бы предложил либо мастер Data/Subtotal, либо сводную таблицу. –

+0

Я обновил вопрос, чтобы сделать его более понятным. Я также следовал [этой дискуссии] (http://stackoverflow.com/questions/17835292/get-the-sum-of-visible-rows-in-vba), проведет некоторый эксперимент и сообщит вам –

+0

Просто используйте сводная таблица, как я предложил –

ответ

0

Было бы лучше с клетками и некоторые прибирать, но это должно работать -

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 
+0

У меня возникла ошибка компиляции, попробовав выше. Пользовательский тип не определен. Попытайтесь поэкспериментировать с использованием предложенного сценария. Спасибо! –

+0

Перейти к Инструменты -> Ссылки -> прокрутите список вниз и проверьте Microsoft Scripting Runtime -> Ok – Will

Смежные вопросы