求助:如何自动计算列中最后6个有效数据的平均值(公式异常)
计算列中最后6个数值单元格的动态平均值
正确公式(适用于Excel 365/Google Sheets)
直接使用动态数组函数,自动适配新增数据:
=AVERAGE(TAKE(FILTER(C:C, ISNUMBER(C:C)), -6))
公式说明
FILTER(C:C, ISNUMBER(C:C)):动态筛选C列所有包含数值的单元格,自动包含后续新增的数据,排除空值和文本TAKE(..., -6):提取筛选结果的最后6个数值AVERAGE():计算这6个数值的平均值
如果需要排除0值,将筛选条件改为(ISNUMBER(C:C) * C:C <> 0),公式变为:
=AVERAGE(TAKE(FILTER(C:C, ISNUMBER(C:C) * C:C <> 0), -6))
旧版Excel兼容方案(无动态数组支持)
如果你的Excel版本不支持TAKE/FILTER,使用数组公式(输入后按Ctrl+Shift+Enter执行):
=AVERAGE(OFFSET(C1, MAX(IF(C:C<>"", ROW(C:C), 0))-6, 0, 6, 1))
错误公式分析
- 第一个公式
=AVERAGE(TAKE(FILTER(C5:C528,C5:C528<>0), ,-6))的问题:- 固定范围
C5:C528无法包含后续新增的数据 - 筛选条件
C5:C528<>0会排除所有0值,若0是有效数据会导致结果偏差
- 固定范围
- 第二个公式参数缺失,结构冗余复杂,直接替换为上述正确公式即可
内容的提问来源于stack exchange,提问作者Laura Evans
相关产品推荐
相关产品推荐

