Google Sheets横向月度数据的6 month rolling average实现方法咨询
如何在Google Sheets中计算横向月度数据的6个月滚动平均值
嘿,我刚好处理过类似的横向滚动平均需求,给你两个实用的方案,直接就能上手:
方案一:用ARRAYFORMULA批量生成(推荐,自动适配数据)
假设你的月度数值数据横向放在第一行(A1:I1),对应的数值是:100,345,34,54,34,67,56,89,555。
你可以直接在第二行的第一个单元格(A2)输入以下公式,它会自动生成所有符合条件的滚动平均值:
=ARRAYFORMULA(IF(COLUMN(A1:I1)<6,"",MMULT(N(OFFSET(A1:I1,0,SEQUENCE(COLUMNS(A1:I1)-5,1,0),1,6)),ROW(INDIRECT("1:6"))^0)/6))
公式逻辑简单拆解:
COLUMN(A1:I1)<6:判断当前列是否是前5列(因为前5列凑不够6个月份数据),是的话显示空白OFFSET(...):滑动选取每一组连续的6个月度数据MMULT(...):快速计算每组6个数据的总和(比逐个SUM更高效)- 最后除以6得到平均值
方案二:手动拖拽公式(适合新手,直观易懂)
如果觉得数组公式有点复杂,也可以用基础的AVERAGE函数手动拖拽:
- 找到第一个能计算6个月平均的位置:也就是第6列对应的第二行单元格(F2),因为从A1到F1刚好是前6个月数据
- 在F2输入公式:
=AVERAGE(A1:F1)
- 选中F2单元格,鼠标悬停到单元格右下角的填充柄(小方块),按住左键向右拖拽到I2,这样每个单元格都会自动计算对应位置的前6个月平均值
注意事项:
- 默认情况下,
AVERAGE函数会自动忽略空白单元格,如果你的数据中有空白,且需要把空白当作0计算,可以改用:=AVERAGEIF(A1:F1,"<>") - 如果后续新增月度数据(比如J1、K1),方案一的数组公式会自动扩展计算,方案二则需要重新拖拽填充柄到新列
内容的提问来源于stack exchange,提问作者78lro
相关产品推荐
相关产品推荐

