VBA Averageifs с булевыми триггерами - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь выполнить вычисления среднего значения, основанные на этих логических триггерах в 75 000 строк, эффективным способом.

См. Ниже. Я сейчас попытался использовать флаг для вычисления среднего значения, если оно не работает - можеткто-нибудь подскажет, где я иду не так? Кроме того, использование Averageifs требует интенсивной работы процессора и должен ли я использовать другой метод? Спасибо

Sub segment_trigger_returns()
Application.ScreenUpdating = False
Dim segment_trigger As Boolean
Dim data_set As Variant
data_set = Range("A4:AV75617")
alpha_1y = Range("S4:S759617")
Dim i As Long
For i = 2 To UBound(data_set, 1)
company_name_curperiod = data_set(i, 3)
company_name_prevperiod = data_set(i - 1, 3)
segments_curperiod = data_set(i, 10)
segments_prevperiod = data_set(i - 1, 10)
If company_name_curperiod = company_name_prevperiod And segments_curperiod <> segments_prevperiod Then
segment_trigger = True
Else: segment_trigger = False
End If
Next i
Sheets("Control").Range("K6") = Application.WorksheetFunction.AverageIfs(alpha_1y, segment_trigger = True)
Application.ScreenUpdating = True
End Sub
...