Страницы: 1
RSS
Макрос суммирования значений по нескольким условиям
 
Всем привет

Нужна помощь
Есть 2 таблицы

Первая:
Код Старт Окончание
1234501.01.2020 01.02.2020
23456 12.01.202002.02.2020
34567 04.02.202008.02.2020
Вторая
КодДата Объем
1234501.01.2020 100
12345 02.01.2020 200
Нужно к каждой строчке первой таблицы подтянуть сумму объемов в указанный в первой таблице период по указанному коду
Обычно использовал функцию SUMIFS, то количество строк в первой таблице - 10К, во второй 300К
В итоге файл умирает, т.к. таких вычислений много

Пробовал написать макрос, в котором перебирал все строки во второй таблице на предмет совпадения с условиями. (FOR). Но тоже очень долго считает

Подскажите, какую функцию лучше использовать в написании макроса? Вторая таблица отсортирована по датам.

Заранее спасибо!
 
Макрос с Вашими таблицами в сообщении работать не будет
 
Evgenii1991, если таблица 1 в диапазоне А1:D4 (В D - сумма выводиться), таблица 2 в диапазоне H1:J2  таблицы с шапкой
Код
Sub sum()
Dim i As Double
Dim a As Double, b As String, c As String
    ilastrow1 = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To ilastrow1
    ilastrow2 = Cells(Rows.Count, 10).End(xlUp).Row
    b = ">=" & CLng(DateValue(Cells(i, 2).Value))
    b2 = "<=" & CLng(DateValue(Cells(i, 3).Value))
    Cells(i, 4) = WorksheetFunction.SumIfs(Range("j2:j" & ilastrow2), _
    Range("i2:i" & ilastrow2), b, Range("i2:i" & ilastrow2), b2)
    Next i
    
End Sub
Изменено: Mershik - 26.02.2020 19:37:56
Не бойтесь совершенства. Вам его не достичь.
Страницы: 1
Наверх