У меня очень большой набор данных ~ 100000 строк с 2 столбцами, я хочу рассчитать скользящее количество на основе 2 критериев, в основном, сколько раз значение в столбце 1 по сравнению с столбцом 2.
Набор данных выглядит так
Я написал следующий код
Это частичный набор данных, фактический имеет 100000 строк, мне нужен ответ в столбце c
Sub test()
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim id, data_week, ans, a As Variant
Dim p As Double
a = 100000
Debug.Print Now()
id = Sheet1.Range("A2:A" & a).Value
data_week = Sheet1.Range("B2:B" & a).Value
ans = Sheet1.Range("c2:c" & a).Value
For p = 1 To a
ans(p, 1) = Application.WorksheetFunction.CountIfs(Sheet1.Range("A2:A" & p + 1), id(p, 1),
Sheet1.Range("b2:b" & p + 1), data_week(p, 1))
Next p
Sheet1.Range("c2:c" & a).Value = ans
Debug.Print Now()
Application.Calculation = xlCalculationAutomatic
End Sub
В VBA это занимает ужасно много времени, интересно, есть ли более быстрый способ сделать это, например, оптимизировать код, благодарю за вашу помощь.