表是目前Excel一大难题,难住一大堆高手。
考勤
难在哪?难在于没有统一标准!
每个公司所用的考勤软件又不一样,导出来的数据各种各样都有,不仅如此,每个公司的计算方法也不一样。
很多高手,遇到考勤表都直接绕过,太花费时间。
学员的问题,要统计正常、加班、合计。加班的计算标准,只要当天有22:00打卡的算半天。
天数
这家工厂
打卡记录转换成考勤表
,对于一线员工还算可以,不需要考虑迟到早退这些,这样一来问题难度就降低了不少。
1.正常天数
只需判断非空单元格的次数,即可解决。
=COUNTA(B2:AF2)
2.加班天数
每个单元格最后的时间跟22:00比较,时间表面看是最后5位。可惜,后发现少1位。
提取
=RIGHT(AE2,5)
明明是5位,怎么提取出来时间不对,这只能证明里面含有隐藏字符
打卡记录转换成考勤表
,所以要提取6位。
=RIGHT(AE2,6)
最后1位隐藏字符是什么呢?卢子放弃了猜测,再用提取左边5位的方法,这样就得到时间。
=LEFT(RIGHT(AE2,6),5)
用文本函数提取出来的时间是文本格式,不能直接比较,需要转换成数值格式,前面加–转换即可。按照目前思路,嵌套SUMPRODUCT函数应该可以解决,可万万没想到,公式往下拉又出错了。
财务工作中,你是否遇到焦头烂额不知如何解决的问题呢?
(此处已添加小程序,请到今日头条客户端查看)
22/24就是代表22:00,因为一天24小时,也可以用TIME(22,0,0)。
=SUMPRODUCT(–(–LEFT(RIGHT(B2:AF2,6),5)>=22/24))/2
卢子找了一个没有打卡记录的单元格测试,发现问题就出在这里。
有错误值,再嵌套一个IFERROR函数,让错误值显示0,这个是数组公式,输入公式后按Ctrl+Shift+Enter三键结束。
=SUM(–(IFERROR(–LEFT(RIGHT(B3:AF3,6),5)>=22/24,0)))/2
经过了反复测试,终于可以了,真不容易。
3.合计
两个天数相加即可。
=AH3+AI3
这种数据还不是最垃圾,比这个更垃圾的还有,真的吐血的心都有。留着改天心情好再说。