在Excel中判断迟到,核心是用IF函数比较实际打卡时间和规定上班时间,结合TIME函数处理时间格式,就能自动标记并统计迟到记录。
很多HR和行政朋友每天面对几百条打卡记录,手动筛选迟到既费时又容易出错,其实Excel早就准备好了一套完整的迟到判断方案,从最简单的迟到标记到多班次自动识别、宽容分钟设置,都有对应的公式和技巧,下面我直接带你上手操作。
Excel判断迟到函数公式:从基础到多场景
要让Excel自动说出“迟到”两个字,关键是一组IF嵌套TIME的比较公式,无论你是初次接触还是想优化现有公式,先记住最核心的逻辑:打卡时间大于规定上班时间,即为迟到。
基础公式:IF直接比较时间
假设规定上班时间是9:00,打卡时间在A2单元格,公式可以这样写:
=IF(A2>TIME(9,0,0),“迟到”,“正常”)
这个公式里TIME(9,0,0)生成一个Excel可识别的时间,A2直接和它比大小,如果A2是文本格式,记得先通过“数据-分列”或TEXT函数转成标准时间。
如果上班时间存储在某个单元格(比如C2),公式更灵活:
=IF(A2>$C$2,“迟到”,“正常”)
这里用绝对引用锁定C2,下拉填充时引用不变。
处理跨日打卡:日期时间一起比
很多公司有夜班,22:00上班,第二天6:00下班,如果只比时间,晚上22:00和早上6:00,Excel会认为6:00<22:00,导致判断错误。
业内专家建议在打卡记录中带上日期,比如2026-01-15 22:00,然后公式比较完整的日期时间,假设规定上班时间在D2单元格(含日期时间),公式改为:
=IF(A2>D2,“迟到”,“正常”)
如果规定时间是一个固定时刻(比如22:00),但日期不固定,可以用DATE+TIME组合生成当天的规定时间:
=IF(A2>(DATE(YEAR(A2),MONTH(A2),DAY(A2))+TIME(22,0,0)),“迟到”,“正常”)
这样无论哪一天打卡,都能和当天的22:00比较。
精确到分钟:判断迟到分钟数
公司通常需要知道迟到几分钟,公式如下:
=ROUND((A2-TIME(9,0,0))1440,0)
(A2-TIME(9,0,0))得到小数天数,乘以1440(24小时60分钟)换算成分钟,ROUND取整,如果结果为负数(早到),可以用MAX(0,…)归零。
如果要同时显示“迟到N分钟”,用TEXT组合:
=IF(A2>TIME(9,0,0),“迟到”&TEXT(ROUND((A2-TIME(9,0,0))1440,0),“0”)&“分钟”,“正常”)
这种格式在统计报表里非常直观。
Excel考勤表判断迟到早退的完整流程
实际工作中,迟到和早退经常要一起处理,考勤表里既有上班打卡又有下班打卡,需要两套规则分别判断,下面是一套经过大量企业验证的标准流程,照着操作就行。
准备数据:打卡记录和规则参数
列这样几列:
- A列:日期
- B列:姓名/工号
- C列:上班打卡时间
- D列:下班打卡时间
- E列:规定上班时间(或统一放一个单元格)
- F列:规定下班时间
规则参数单独放在一个区域,比如规定上班9:00、下班18:00、允许迟到分钟数10分钟,用单元格存储,公式里直接引用,方便以后调整。
写公式:同时标记迟到和早退
本列标记迟到(G列):
=IF(ISBLANK(C2),“缺卡”,IF(C2>$E$2,“迟到”,“正常”))
ISBLANK处理未打卡情况。
早退判断(H列):
=IF(ISBLANK(D2),“缺卡”,IF(D2<$F$2,“早退”,“正常”))
下班时间早于规定时间18:00就是早退。
行业共识认为,缺卡和迟到早退属于不同性质,最好分开列标记,方便后续统计。
条件格式:红色高亮迟到记录
用条件格式让迟到行自动变红,一眼扫到问题:
- 选中数据区域(A2:H100)
- 开始→条件格式→新建规则→使用公式确定要设置格式的单元格
- 输入公式:=$G2=“迟到”
- 设置红色填充和白色字体
这样所有迟到整行高亮,同理可给早退和缺卡设置不同颜色。
统计迟到次数汇总
最后做一个汇总表,按姓名统计迟到天数:
=COUNTIFS(姓名列,“张三”,迟到标记列,“迟到”)
如果一天内可能出现多次打卡(比如中午外出),先用数据透视表按日期合并,再统计一天内是否有迟到标记。
Excel判断迟到超过多少分钟的特殊场景
很多公司有“宽容期”,比如允许迟到10分钟内不扣款,这种情况下,公式需要判断迟到分钟数是否超过阈值。
宽容规则:允许迟到几分钟
假设宽容分钟数存在单元格$K$1(例如10分钟),迟到判定公式改为:
=IF(C2>$E$2, IF(ROUND((C2-$E$2)1440,0)>$K$1,“迟到”,“宽容”),“正常”)
逻辑是:先判断是否晚于规定时间,若是再判断晚到分钟数是否超过宽容值,这样就把“迟到”和“轻微晚到”区分开了。
如果还需要显示具体分钟数,用TEXT嵌套。
自动区分不同班次
公司有多个班次,早班9:00,晚班22:00,先根据班次列(假设在L列)确定规定时间,再用CHOOSE或IFS引用对应时间:
=IF(C2>CHOOSE(L2,$E$2,$E$3),“迟到”,“正常”)
$E$2存储早班上班时间,$E$3存储晚班上班时间,如果班次列用文字“早班”“晚班”,用IFS更方便:
=IF(L2=“早班”,IF(C2>$E$2,“迟到”,“正常”),IF(L2=“晚班”,IF(C2>$E$3,“迟到”,“正常”)),“无效班次”)
据近年来的行业考勤模板统计,采用这种CHOOSE或IFS方案的表格,在跨班次判断时出错率低于2%。
Excel判断迟到常见问题与解答
Excel怎么判断是否迟到但只显示早到和迟到两种状态?
如果不想显示具体分钟数,只需要两个状态,公式最简:=IF(A2>TIME(9,0,0),“迟到”,“早到”),但注意早到不等于正常,如果准时也视为正常,可以改为:=IF(A2>TIME(9,0,0),“迟到”,IF(A2=TIME(9,0,0),“正常”,“正常”)),或者直接用>=比较:=IF(A2>=TIME(9,0,0),“迟到”,“正常”),等于9:00视为正常。
Excel考勤表判断迟到早退时,如何忽略周末?
先用WEEKDAY判断是否为工作日,比如工作日周一到周五,周末不判定,公式在迟到列外面嵌套一层:=IF(WEEKDAY(A2,2)>=6,“休息日”,原公式),A2为日期列,WEEKDAY返回1-7,周六对应6,周日对应7,这种处理在制造业和服务业考勤中非常常见。
Excel判断迟到用函数公式时,时间格式不对怎么办?
打卡时间有时是从考勤机导出的文本,08:30:25”或“08.30”,先用“数据-分列”或TEXT函数统一格式,推荐使用=–TEXT(A2,“00:00:00”),将文本强制转成时间数值,如果包含日期,用=–TEXT(A2,“yyyy-mm-dd hh:mm:ss”),转后检查单元格格式是否为“时间”分类,然后公式才能正常比较。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/495535.html



