Excel中AVERAGEIF嵌套MOD按间隔行求均值失效问题求助
问题原因
AVERAGEIF函数的第一个参数(条件区域)仅支持单元格区域引用,无法直接识别内存数组(比如MOD(ROW(D20:D35)-ROW(D20),4)生成的动态数组)。分步操作时你将数组结果存入单元格区域N19#,这属于合法的区域引用,因此AVERAGEIF能正常计算;但直接嵌套时,MOD返回的是未存储到单元格的内存数组,不符合AVERAGEIF的参数规则,导致公式失效。
解决方法
方法1:FILTER + AVERAGE(推荐,适配动态数组)
先通过FILTER筛选出符合“每第4行”条件的数据,再用AVERAGE计算平均值:
=AVERAGE(FILTER(D20:D35,MOD(ROW(D20:D35)-ROW(D20),4)=0))
方法2:SUMPRODUCT 替代
通过乘积求和得到符合条件的数据总和,再除以符合条件的行数,实现平均值计算:
=SUMPRODUCT((MOD(ROW(D20:D35)-ROW(D20),4)=0)*D20:D35)/SUMPRODUCT(--(MOD(ROW(D20:D35)-ROW(D20),4)=0))
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

