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

如何在Google Sheets中计算两类车库门的滚动每日平均开关次数

解决方案

前提假设

先明确数据结构(若你的列对应关系不同,可自行调整列号):

  • A列:开关事件的日期(需设置为「日期」格式,避免文本格式导致逻辑错误)
  • B列:门的类型(Garage door / Third stall)
  • F列:每日对应门的总开关次数(若F列是单条开关记录,先看下方预处理步骤)

1. 基础滚动平均公式(最近N天)

若要计算**当前日期及之前6天(共7天)**对应门类型的滚动每日平均,在G2单元格输入公式后下拉填充:

=AVERAGEIFS($F$2:$F, $B$2:$B, B2, $A$2:$A, ">="&A2-6, $A$2:$A, "<="&A2)
  • 调整滚动天数:将A2-6改为A2-(N-1),比如计算最近30天的平均就用A2-29
  • 公式逻辑:
    • $F$2:$F:指定要计算平均的每日次数范围
    • $B$2:$B, B2:匹配当前行的门类型
    • $A$2:$A, ">="&A2-6:筛选出滚动日期范围内的记录
    • $A$2:$A, "<="&A2:限定日期不晚于当前行的日期

2. 若F列是单条开关记录(非每日汇总)

先在F列计算每日对应门的总开关次数,在F2输入公式后下拉:

=COUNTIFS($A$2:$A, A2, $B$2:$B, B2)

完成每日次数汇总后,再用上述AVERAGEIFS公式计算滚动平均。

3. 自动填充的动态数组公式(新版Google Sheets)

如果使用支持动态数组的Google Sheets版本,可一次性生成所有行的结果,无需手动下拉:

=BYROW(A2:B, LAMBDA(row, 
  IF(INDEX(row, 1)="", "", 
    AVERAGEIFS(F:F, B:B, INDEX(row, 2), A:A, ">="&INDEX(row,1)-6, A:A, "<="&INDEX(row,1))
  )
))

常见问题排查

  • 日期格式校验:选中A列 → 点击「格式」→「数字」→「日期」,确保日期不是文本格式
  • 引用范围修正:用绝对引用(带$)固定条件范围,避免下拉时范围偏移
  • 空值/无记录处理:若结果显示#DIV/0!,说明该门类型在滚动日期范围内无记录,可嵌套IFERROR返回0:
    =IFERROR(AVERAGEIFS($F$2:$F, $B$2:$B, B2, $A$2:$A, ">="&A2-6, $A$2:$A, "<="&A2), 0)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 17:36:15