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

如何用QUERY函数实现周/双周问题统计并寻找EOMONTH等价周末函数?

解决方案

1. 每周已解决问题统计

替换原QUERY公式为以下代码,该公式会按每周日作为周结束日期分组统计符合条件的问题数量:

=QUERY(
  {'Sheet1'!$A$1:$F$2530, 
   ARRAYFORMULA(IF('Sheet1'!$G$1:$G$2530="",,DATE(YEAR('Sheet1'!$G$1:$G$2530), MONTH('Sheet1'!$G$1:$G$2530), DAY('Sheet1'!$G$1:$G$2530) - WEEKDAY('Sheet1'!$G$1:$G$2530, 2) + 7)))
  },
  "select Col7, count(Col1) 
   where Col6 matches 'bug|customer_issue' 
   group by Col7 
   label Col7 'Week Ending', count(Col1) 'Total Bugs Created' 
   format Col7 'MMMM dd, YYYY'",
  1
)
  • 核心逻辑:用WEEKDAY(date,2)将周一设为每周第1天,通过日期计算得到当前日期所在周的周日,以此作为分组依据。
  • 格式部分format Col7 'MMMM dd, YYYY'会将周结束日期显示为类似January 07, 2024的格式,便于图表展示。

2. 每两周已解决问题统计

如果需要按每两周分组,使用以下公式,以每两周的最后一个周日作为分组标识:

=QUERY(
  {'Sheet1'!$A$1:$F$2530, 
   ARRAYFORMULA(IF('Sheet1'!$G$1:$G$2530="",,DATE(YEAR('Sheet1'!$G$1:$G$2530),1,1)+(ROUNDUP(WEEKNUM('Sheet1'!$G$1:$G$2530)/2)*2-1)*7))
  },
  "select Col7, count(Col1) 
   where Col6 matches 'bug|customer_issue' 
   group by Col7 
   label Col7 '2-Week Period Ending', count(Col1) 'Total Bugs Created' 
   format Col7 'MMMM dd, YYYY'",
  1
)
  • 核心逻辑:通过ROUNDUP(WEEKNUM(date)/2)将连续两周合并为一个分组,再计算该分组的最后一个周日作为代表日期。

3. 类似EOMONTH的周末计算替代方案

Google Sheets没有内置的“周末结束日期”函数(如EOWeek),但可以通过DATE+WEEKDAY的组合实现等效功能:

  • 计算当前日期所在周的周日:=DATE(YEAR(date),MONTH(date),DAY(date)-WEEKDAY(date,2)+7)
  • 计算当前日期所在周的周六:=DATE(YEAR(date),MONTH(date),DAY(date)-WEEKDAY(date,1)+7)
  • 可以将这些逻辑嵌入ARRAYFORMULA中,像上面的统计公式一样批量处理整列日期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 07:53:12