这个员工考勤表,计算起来太方便了!

与 30万 读者一起学Excel

VIP学员的问题,考勤明细是从系统导出,平常上班打卡在C、D列,周末加班打卡在E、F列,现在要计算每天加班了多少小时?

平常18点以后算加班,周末全天都算加班,不足1小时的直接舍去。

1.平常加班

D列的下班时间减去18点,就可以获得平常加班时间。

=D2-"18:00"

没有下班时间的时候,是这个符号:,文本是不能运算的,这样就导致运算出错。容错最常用的方法就是嵌套IFERROR函数。

=IFERROR(D2-"18:00",0)

这里还潜在一个问题,早退,也就是18点之前下班的。早退的话,两个时间相减是负数,类似于个税,如果是负数,就当0处理。熟悉个税公式的,都知道嵌套MAX处理。

=IFERROR(MAX(0,D2-"18:00"),0)

不足1小时的直接舍去。向下舍去有很多种方法,这里用FLOOR,1天24小时,1小时就是1/24。

=IFERROR(FLOOR(MAX(0,D2-"18:00"),1/24),0)

另外,如果是不足半小时的舍去,可以这样变动,将1/24改成0.5/24或者1/48。

到这里平常加班的时间就出来了,当然,也可以只显示小时数。再*24,然后设置单元格为常规,就是小时数。

=IFERROR(FLOOR(MAX(0,D2-"18:00"),1/24),0)*24

平常加班已经计算出来,周末加班就变得很简单,原理是一样的。

2.周末加班

F列的时间减去E列就是周末加班,再嵌套IFERROR函数容错。

=IFERROR(F2-E2,0)

再将时间转换成小时,不足1小时的舍去。

=IFERROR(FLOOR(F2-E2,1/24),0)*24

3.总加班小时

总加班小时=平常加班+周末加班,也就是将上面2条公式相加。

=IFERROR(FLOOR(MAX(0,D2-"18:00"),1/24),0)*24+IFERROR(FLOOR(F2-E2,1/24),0)*24

如果周末按9点开始上班,公式也可以略做改动。

=IFERROR(FLOOR(F2-MAX(TIME(9,0,0),E2),1/24),0)*24+IFERROR(FLOOR(MAX(0,D2-"18:00"),1/24),0)*24

计算考勤是一件很麻烦的事,需要考虑的因素太多。还好,这份考勤记录相对标准,处理起来也不会太难。

一次报名成为VIP会员,所有课程永久免费学,采用录制视频+微信答疑的形式学习,仅需888元,待你加入。

推荐:考勤表,才是真正检验Excel水平的试金石

上篇:VLOOKUP/LOOKUP搞不定,那就用这3个函数组合,瞬间搞定!

关于考勤表计算,你有没比较好的方法?

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

(0)

相关推荐