You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一行孤立单元格中计算时序累积平均值?

解决Google Sheets中「Monthly Total」累积移动平均值计算问题

问题根源

你之前的公式(包括QUERY方案)都是对整行的「Monthly Total」做全局平均,没有限制范围为当前单元格左侧的历史数据,导致所有平均值结果一致;同时QUERY会输出多个匹配结果,无法直接生成单一累积值。

解决方案

1. 单个「Monthly Average」单元格公式

假设你要在第32行的某个Average单元格(比如AF32)计算左侧所有「Monthly Total」的平均值,使用以下公式:

=AVERAGE(FILTER($32:$32, COLUMN($32:$32) < COLUMN(AF32), $31:$31 = "Monthly Total"))
  • $32:$32:目标数值所在行(可根据实际行号修改)
  • COLUMN($32:$32) < COLUMN(AF32):仅筛选当前单元格左侧的列
  • $31:$31 = "Monthly Total":匹配标识行中「Monthly Total」对应的数值(标识行号根据实际修改)

如果标识文本有大小写或格式差异,改用正则匹配:

=AVERAGE(FILTER($32:$32, COLUMN($32:$32) < COLUMN(AF32), REGEXMATCH($31:$31, "Monthly Total")))

2. 批量自动填充所有Average单元格

用ARRAYFORMULA结合BYCOL实现整行自动计算,无需逐个单元格粘贴:

=ARRAYFORMULA(IF(REGEXMATCH($31:$31, "Monthly Average"), BYCOL(SEQUENCE(1, COLUMNS($32:$32)), LAMBDA(col, AVERAGE(FILTER(INDEX($32:$32,1,1):INDEX($32:$32,1,col), INDEX($31:$31,1,1):INDEX($31:$31,1,col) = "Monthly Total")))), ""))
  • REGEXMATCH($31:$31, "Monthly Average"):仅在标记为「Monthly Average」的单元格填充结果
  • BYCOL(...):逐列遍历,对每一列计算从行首到当前列的累积平均
  • INDEX($32:$32,1,1):INDEX($32:$32,1,col):限定计算范围为当前列左侧的所有单元格

注意事项

  • 确保标识行(如示例第31行)与数值行(第32行)的列完全对应
  • 空的「Monthly Total」单元格会被FILTER自动排除,不影响平均值计算
  • 若行号或标识文本不同,直接替换公式中的行号和匹配文本即可

内容的提问来源于stack exchange,提问作者Brandon Heath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:57:35