多工作表下双条件AVERAGEIFS公式实现方法技术问询
需求与问题
核心需求:在Excel中实现动态双条件平均值计算,要求数据变动时自动更新,仅需运行一次脚本生成公式/逻辑
- 计算对象:多个目标工作表的S列数据
- 条件1:S列数值 ≥
Homepage!F10单元格的设定整数 - 条件2:对应工作表A列的分组字符串,与当前单元格左侧第3列的值匹配
- 目标工作表列表:
Results工作表I列(从第3行开始)
尝试方案:通过VBA生成带
INDIRECT函数的Formula2R1C1公式,但公式无法正常运行,代码如下:
nb_ws = WorksheetFunction.CountA(Worksheets("Results").Columns("I:I")) Worksheets("Results").Cells(11, 23).Formula2R1C1 = "=AVERAGEIFS(INDIRECT(""'""&R3C9:R" & nb_ws + 2 & "C9&""'!""&""S:S""),""'""&R3C9:R" & nb_ws + 2 & "C9&""'!""&""S:S"","">=""&'Homepage'!R10C6,INDIRECT(""'""&R3C9:R" & nb_ws + 2 & "C9&""'!""&""A:A""),RC[-3])"
- 备选思路:考虑用
For Each循环遍历每个目标工作表,逐个计算符合条件的平均值后再求总平均,同事建议避免此方法,但个人觉得更简便。
诉求
希望获得实现思路(而非直接解决方案),以理解原理;允许修改工作表结构,但不可改动原始数据。
内容的提问来源于stack exchange,提问作者Maxence G
相关产品推荐
相关产品推荐

