Всем добрый вечер! Уважаемые знатоки, подскажите, пожалуйста, как оптимально применить суммирование из одной таблицы в другую в vba по критериям Есть потрясающий пример оптимизации функции ВПР от Hugo http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=31763 Возможно есть такой же аналог для суммесли? У меня сейчас задача в лист из 14 тыс строк просуммировать данные из листа ~100 тыс строк, при этом в несколько столбцов. В пример сделал 2 маленькие таблицы, для удобства.
qwerty64 написал: В пример сделал 2 маленькие таблицы, для удобства
Не нужно для удобства, нужно как в Правилах написано - в РЕАЛЬНЫХ форматах и расположениях данных. Что-бы в дальнейшем исключить переспрашивания, типа: 'а почему в рабочем файле не работает? '. 100К строк конечно не надо, а вот кол-во столбцов желательно. И желательно видеть желаемый РЕЗУЛЬТАТ. А то сейчас Ваши таблички конечно чертовски удобны, но малоинформативны. ЧТО Вы хотите на выходе работы макроса получить?
Согласие есть продукт при полном непротивлении сторон
На этом примере хотел чтобы в первую таблицу были просуммированы данные из второй. Добавил формулу в файл. Уверен, что справлюсь с адаптацией под итоговый файл, который использую в работе, поэтому пусть будет такая упрощенная модель, если Вы не против
Sub tt()
Dim a(), i&, t$
a = [d1].CurrentRegion.Value
With CreateObject("scripting.dictionary"): .comparemode = 1
For i = 1 To UBound(a)
t = a(i, 1)
.Item(t) = .Item(t) + a(i, 2)
Next
a = [a1].CurrentRegion.Columns(1).Resize(, 2).Value
For i = 1 To UBound(a)
t = a(i, 1)
If .exists(t) Then a(i, 2) = .Item(t)
Next
End With
[a1].CurrentRegion.Columns(1).Resize(, 2).Value = a
End Sub