Excel 带布尔触发器的VBA Averageifs
我试图以一种高效的方式,基于这些布尔触发器,对75000行进行averageif计算 见下文,我现在尝试使用该标志来计算平均值,但它不起作用-有人能告诉我哪里出了问题吗?此外,使用Averageifs是否会占用大量处理器,我是否应该使用其他方法?谢谢Excel 带布尔触发器的VBA Averageifs,excel,vba,flags,Excel,Vba,Flags,我试图以一种高效的方式,基于这些布尔触发器,对75000行进行averageif计算 见下文,我现在尝试使用该标志来计算平均值,但它不起作用-有人能告诉我哪里出了问题吗?此外,使用Averageifs是否会占用大量处理器,我是否应该使用其他方法?谢谢 Sub segment_trigger_returns() Application.ScreenUpdating = False Dim segment_trigger As Boolean Dim data_set As Variant data
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
子段触发返回()
Application.ScreenUpdating=False
Dim段_触发器为布尔值
Dim数据_设置为变量
数据集=范围(“A4:AV75617”)
alpha_1y=范围(“S4:S759617”)
我想我会坚持多久
对于i=2到UBound(数据集,1)
公司名称当前周期=数据集(i,3)
公司名称前期=数据集(i-1,3)
分段时间=数据集(i,10)
段=数据集(i-1,10)
如果公司名称\u curperiod=公司名称\u prevperiod和分段\u curperiod分段\u prevperiod,则
段_触发器=真
否则:段_触发器=错误
如果结束
接下来我
工作表(“控制”)。范围(“K6”)=应用程序。工作表功能。平均值IFS(alpha_1y,段触发=True)
Application.ScreenUpdating=True
端接头
您忘记声明alpha_1y
-它应该是范围
,也应该是设置
。将选项Explicit
添加到模块顶部。段触发=True
似乎是多余的:True=True
只是True
,对于False=True
也是如此。