Excel公式需求:计算含空白单元格的104周数据中最近52个有效收入单元格的平均值
Excel公式需求:计算含空白单元格的104周数据中最近52个有效收入单元格的平均值
嘿,这个需求我之前帮同事解决过,分两种Excel版本给你实用方案,你按需选就行:
适用于Excel 365/2021(支持动态数组)
如果你的Excel是新版本,用这个公式超省心:
=AVERAGE(TAKE(FILTER(A1:A104, A1:A104<>""), -52))
- 先通过
FILTER(A1:A104, A1:A104<>"")筛选出所有非空白的收入数据; - 再用
TAKE(..., -52)提取筛选结果里最后52个(也就是最近的52周有效数据); - 最后用
AVERAGE计算平均值。
适用于Excel 2019及更早版本(无动态数组)
旧版本得用数组公式实现,输入完公式后要按Ctrl+Shift+Enter确认(不能直接回车):
=AVERAGE(INDEX(A1:A104, LARGE(IF(A1:A104<>"", ROW(A1:A104)-ROW(A1)+1), ROW(INDIRECT("1:52")))))
简单说下逻辑:
IF(A1:A104<>"", ROW(A1:A104)-ROW(A1)+1)先找出所有非空白单元格在数据区域里的相对位置;LARGE(..., ROW(INDIRECT("1:52")))提取这些位置里最大的52个(对应最近的52周数据);INDEX根据这些位置取出对应收入值,最后用AVERAGE算平均。
小提醒
- 确保你的数据是从旧到新排列的(比如A1是第1周,A104是第104周),如果顺序反过来(最新的在最上面),记得把公式里的
LARGE换成SMALL,或者TAKE的参数改成52(去掉负号)。
备注:内容来源于stack exchange,提问作者user1799718
相关产品推荐
相关产品推荐

