EXCEL 计算考勤公式(迟到,早退,矿工) 正常上班时间是9:00到17:30,周六周日不上—请大神帮忙

如题所述

刚才 忘记周六周日了

=IF(OR(WEEKDAY(D2,2)=6,WEEKDAY(D2,2)=7),"",IF(VALUE(G2)=0,"早上旷工",IF(VALUE(G2)>9/24,"迟到",""))&IF(VALUE(H2)=0,"下午旷工",IF(VALUE(H2)<17.5/24,"早退","")))

追问

复制了公式,基本对上了,您能不能大概讲一下这个公式的意思呢?

追答

WEEKDAY(D2,2) 判断日期为 周一至 周日 (1到7)
VALUE(G2) 转换文本格式日期为数值 ,8:00 数值为 8/24, 1天24小时为1
然后就是 if 判断

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-07
=IF((TIME(9,0,0)<G2),"迟到","")
=IF((TIME(17,30,0)>H2),"早退","")
上面是I列 和J列
还有个旷工:IF追问

这个公式不对,显式都是迟到呢

第2个回答  2018-08-16
楼主的答案棒,我分解了一下,因为如果结果在一列显示的话,签到和签退时间都异常的就只能显示一个异常了:
签到=IF(OR(WEEKDAY(D2,2)=6,WEEKDAY(D2,2)=7),"",IF(VALUE(G2)=0,"未打卡",IF(VALUE(G2)>9/24,"迟到","")))
签退=IF(OR(WEEKDAY(D2,2)=6,WEEKDAY(D2,2)=7),"",IF(VALUE(H2)=0,"未打卡",IF(VALUE(H2)<17.5/24,"早退","")))
第3个回答  2015-07-07
有例子吗/ 需要出现什么样的效果?追问

I列能看到是否迟到,J列显示是否早退,然后找个单元格显示这个人是否旷工,如果在一列显式就更好了,下面还有很多员工,没有贴上去