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

Google Sheets如何按月份分组统计工作天数与累计总工时

Google Sheets 工时按月统计实现方案

基础前提

原始数据列规则(第1行为表头,数据从第2行开始):

  • A列:标准日期格式的考勤日期
  • B列:上班开始时间
  • C列:下班结束时间
  • D列:单条记录对应的工作时长
    输出列要求:
  • E列:年月标识,格式为mm/yyyy(如06/2022)
  • F列:对应月份去重后的实际工作天数(同一日期多条记录仅计1天)
  • G列:对应月份累计总工作时长(同一日期多条记录的工时全部累加)

各列公式(直接套用即可)

E列:自动生成不重复年月列表

选中E2单元格,输入以下公式,会自动溢出所有存在考勤记录的年月,无需手动下拉:

=UNIQUE(ARRAYFORMULA(TEXT(A2:A,"mm/yyyy")))

注意:如果公式报错,先选中A列,将单元格格式设置为「日期」,确保A列内容是可识别的日期值而非文本。

F列:按月统计去重工作天数

选中F2单元格,输入以下公式,下拉填充到E列年月值的最后一行即可:

=COUNTUNIQUEIFS(A:A,ARRAYFORMULA(TEXT(A:A,"mm/yyyy")),E2)

公式逻辑:先筛选出A列年月与当前行E列值匹配的所有记录,再对筛选结果内的日期做去重计数,自动跳过同一日期的重复工时记录。

G列:按月统计累计总工时

选中G2单元格,输入以下公式,下拉填充到E列年月值的最后一行即可:

=SUMIF(ARRAYFORMULA(TEXT(A:A,"mm/yyyy")),E2,D:D)

公式逻辑:匹配所有年月与当前行E列值一致的记录,对D列的工时值直接求和,同一天多条记录的工时会正常累加。如果D列是时间格式,求和后选中G列,将单元格格式设置为「时长」即可正常显示累计小时数。


常见踩坑说明

之前用ARRAYFORMULA、QUERY未得到正确结果,通常是三个原因:

  1. 未对A列日期做统一的年月格式转换,直接用月份值匹配时跨年数据会混淆(比如2022年6月和2023年6月被统计到一起)
  2. 统计工作天数时直接用COUNT/COUNTA类函数,没有做日期去重,导致同一天多条记录被重复计数
  3. 用QUERY做日期匹配时未按Google Sheets的日期序列化规则写筛选条件,匹配结果为空或不全。

如果数据量较大,建议把公式里的整列引用(如A:A、D:D)改成实际数据范围(比如数据到第1000行就写A2:A1000、D2:D1000),可以大幅提升表格计算速度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:24:43