|
本帖最后由 a20089668 于 2016-9-30 15:23 编辑
花两个工作日做的考勤统计表,在编写代码的时候曾多次推翻之前的判断方法,原因是数据格式的不规律。虽能对当前的数据表进行统计,但代码是比较啰嗦、冗余。
详细请看附件:
sheet1为考勤机导出的数据源(几个人的考勤数据),为不破坏它,我把其中一人的考勤数据复制到 sheet3去,然后作判断。
我一共使用7个按钮(最后两个没有使用),其中第七个按钮竟然是为了填满蓝色区域最后剩余两个空单元格而写的,大家可以先执行前面6个按钮的代码,看是不是剩余两个空单元格?
单位规定上班时间:8:35-12:00,14:35-18:00
F列到M列为打卡时间,无论有多少个时间数据,都只作出四个判断结果,就是:
(1)上午上班 是否正常,如正常则写入“正常”,否则判断是何种异常,并写入。
(2)上午下班 是否正常,如正常则写入“正常”,否则判断是何种异常,并写入。
(3)下午上班 是否正常,如正常则写入“正常”,否则判断是何种异常,并写入。
(4)下午下班 是否正常,如正常则写入“正常”,否则判断是何种异常,并写入。
异常有很多种,如:漏打卡、迟到、休息半天、重复打卡、正常+重复打卡、迟到+重复打卡……等。(可能还有其他情况的异常,所以此处用了省略号)
例如:某天打卡时间:8:33 8:39 12:05 14:42 14:48 18:36
那么四个判断结果应该为:正常+重复打卡、正常、迟到+重复打卡、正常。(对应的表头是上午上班、上午下班、下午上班、下午下班)
上面只是举例(但也有发生的情况),事实上,我程序里面是根据时间段来判断:
(0:00 , 8:36) 正常
(8:35 , 10:00) 迟到 (10:00 , 12:00)这段时间没有作判断。
(12:00 , 13:30) 正常
(13:30 , 14:36) 正常
(14:35 , 16:00) 迟到 (16:00 , 18:00)这段时间没有作判断,如出现16:20这样的时间,则判断为正常了(下午下班),那么这个结果是不正确的。
小于23:30 正常
求助找出数据规律,以便简化代码。
附件在2楼.....(9-30中午修改过)
|
|