说明网
休闲爱好 1 个回答

在Excel考勤表中,如何结合打卡记录用函数自动统计每月的实际出勤天数与加班天数?

宁采臣 提问者

发布于 2026-11-08

问题补充

通过COUNTIFS、SUMPRODUCT等函数匹配员工姓名与日期范围内的打卡记录,可自动统计每月实际出勤天数;结合标准工时对比打卡时长或周末/节假日打卡记录,可计算加班天数。

1 个回答

按发布时间排序
37度3 回答者

回答于 2026-11-08

在Excel中结合打卡记录统计每月出勤与加班天数,核心是通过条件计数函数匹配姓名、日期及时间数据。

一、统计每月实际出勤天数

假设A列为姓名,B列为打卡日期,需统计某员工在指定月份的出勤天数:

  1. 使用COUNTIFS函数:=COUNTIFS(A:A,"张三",B:B,">="&DATE(2024,1,1),B:B,"<"&DATE(2024,2,1))。该公式统计“张三”在2024年1月内的打卡记录数。若每天仅一条有效打卡记录,结果即为出勤天数。
  2. 去重处理:若一天有多次打卡(如上下班各一次),直接计数会重复。可使用SUMPRODUCT配合数组去重,或先通过辅助列用TEXT(B2,"yyyy-mm-dd")&A2生成唯一标识,再用COUNTIF统计不重复项。

二、统计每月加班天数

加班通常分为工作日延时加班和休息日/节假日加班,需根据打卡时间判断:

  1. 工作日延时加班:假设C列为下班打卡时间,标准下班时间为18:00。公式示例:=COUNTIFS(A:A,"张三",B:B,">="&起始日期,B:B,"<"&结束日期,C:C,">"&TIME(18,0,0))。此公式统计下班打卡晚于18:00的天数。
  2. 休息日加班:利用WEEKDAY函数判断日期是否为周末。公式示例:=SUMPRODUCT((A$2:A$1000="张三")*(B$2:B$1000>=起始日期)*(B$2:B$1000<结束日期)*(OR(WEEKDAY(B$2:B$1000,2)=6,WEEKDAY(B$2:B$1000,2)=7)))。注意SUMPRODUCT内处理OR逻辑时需转换为加法运算(WEEKDAY(...)=6)+(WEEKDAY(...)=7)>0。

三、适用条件与常见误区

  • 数据规范:打卡日期必须为Excel标准日期格式,时间必须为标准时间格式,文本型日期会导致条件匹配失败。
  • 跨天打卡:若存在夜班跨零点打卡,单纯比较时间大小会产生误判,需结合具体排班表增加逻辑判断。
  • 多条件嵌套:当规则复杂时(如需同时满足迟到不计入出勤、加班需满1小时才算等),建议增加辅助列将中间判断结果固化,再对辅助列进行汇总,以降低单条公式的复杂度与出错率。

内容由网友提供,仅供参考。