如何让Google Sheets考勤追踪器仅统计当日及过往出勤数据
解决Google Sheets考勤统计仅包含当日及过往数据的问题
要过滤掉未来日期的出勤记录,核心是用COUNTIFS函数结合TODAY(),同时匹配员工ID、日期≤今日、目标出勤状态三个条件。
单月份统计示例
假设你要在「Report 2022」中统计员工15在November工作表里的有效Present天数:
=COUNTIFS('November'!C:C, "员工15", 'November'!A:A, "<="&TODAY(), 'November'!B:B, "Present")
参数说明:
'November'!C:C:指定员工ID所在列,匹配目标员工'November'!A:A, "<="&TODAY():筛选日期列中不晚于今日的记录(&用于拼接文本和函数结果)'November'!B:B, "Present":匹配要统计的出勤状态
同理,统计该员工有效AR天数的公式:
=COUNTIFS('November'!C:C, "员工15", 'November'!A:A, "<="&TODAY(), 'November'!B:B, "AR")
跨多月份统计(2022全年)
如果要整合所有2022月份工作表的数据,用QUERY函数更高效,无需逐个月份写COUNTIFS:
=QUERY({January!A:C;February!A:C;March!A:C;April!A:C;May!A:C;June!A:C;July!A:C;August!A:C;September!A:C;October!A:C;November!A:C}, "SELECT Col3, COUNT(Col2) WHERE Col1 <= date '"&TEXT(TODAY(), "yyyy-MM-dd")&"' AND Col2 = 'AR' GROUP BY Col3 LABEL Col3 '员工ID', COUNT(Col2) 'AR天数'", 1)
说明:
{Sheet1!A:C;Sheet2!A:C}:用分号合并所有月份的A:C列数据(确保各表列顺序一致:日期、状态、员工ID)Col1 <= date '"&TEXT(TODAY(), "yyyy-MM-dd")&"':将今日日期转为QUERY识别的格式,筛选过往日期GROUP BY Col3:按员工ID分组统计- 最后一个参数
1表示数据包含表头
注意事项
- 确保所有月份工作表的日期列是有效日期格式(而非文本),否则日期对比会失效
- 如果员工ID是数字格式,公式里不要加引号,比如
"员工15"改为15
内容的提问来源于stack exchange,提问作者user20445190
相关产品推荐
相关产品推荐

