Google Sheets 如何用单个公式批量统计各周打开的缺陷数量
Google Sheets按周自动统计新增缺陷数的单公式实现
原公式的问题定位
- 列引用与需求不匹配:需求要统计创建时间落在指定周区间的新打开缺陷数,但原公式引用了
bugs!C:C(closed关闭时间列),逻辑偏离,应替换为created创建时间对应的bugs!B:B列 - 计算逻辑不支持批量运算:原公式嵌套的FILTER是单次整列筛选逻辑,仅能传入固定单元格A2作为筛选条件,无法逐行匹配A列所有周起始日期做独立统计,因此只能输出单个单元格结果,无法批量生成整列统计值。
可直接复用的单个数组公式
在bugs by week工作表的B2单元格(待填充统计值的第一行位置)输入以下公式,无需逐行下拉拖拽,即可自动覆盖所有有效行的统计结果:=ARRAYFORMULA(IF(A2:A="","",COUNTIFS(bugs!B:B,">="&A2:A,bugs!B:B,"<"&A2:A+7)))
公式运行逻辑
- 外层判断:
IF(A2:A="","",...)自动跳过A列未填写周起始日期的空行,避免输出无意义的0值 - 核心统计逻辑:用COUNTIFS替代原FILTER+COUNT组合,将原固定引用的单值A2替换为整列范围
A2:A,逐行匹配两个统计规则:- 缺陷创建时间 ≥ 当前行对应的周起始日期
- 缺陷创建时间 < 当前行对应的周起始日期+7,刚好覆盖完整7天的周区间,和需求中“统计1.1-1.7创建的缺陷算入1.1当周”的规则完全对齐
- 全公式包裹在ARRAYFORMULA中,支持数组级逐行运算,输入一次即可自动输出整列所有统计结果。
注意:如果bugs表中存在未填写创建时间的空行,公式会自动忽略这些无效数据;只要
bugs by week表A列的周起始日期是Google Sheets可识别的合法日期格式,无需额外格式转换即可正常计算。
内容的提问来源于stack exchange,提问作者sydd
相关产品推荐
相关产品推荐

