background image

起来,导致计算结果偏大,违背了考勤规则,即半小时以内不计入加班,所以需要此公
式来进行修正。
此公式比较复杂,因为有几层意思,分别解释如下:
“IF((E2-H2)*24)>=1,16,16.5)”

的意思是,如果 E2-H2” “

即 下班打卡时间 减去 标准下班

时间 的计算结果乘上 24 后大于等于 1

,则其计算结果为 16”

,否则为 16.5”。这里乘上

24 的原因是需要将计算结果从时间数转换为小时数;
“IF(HOUR(E2)-IF(((E2-H2)*24)>=1,16,16.5)”

的意思是,将 E2”

格即 下班打卡时间 中的

小时位上的数减去 16 或 16.5
“IF(MINUTE(I2)>=30,0.5,0)”

的意思是,如果 I2” “

即 加班时间 列中的分钟数大于等于 30

分钟,则计算结果为 0.5”

,否则为 0”,此公式就是考勤规则的修正公式;

“(HOUR(E2)-IF((E2-H2)*24)>=1,16,16.5)+(IF(MINUTE(I2)>=30,0.5,0)”的意思就是将下班
打卡时间上的小时数减去 16 或 16.5(标准下班时间)再加上分钟数上的修正公式所得到

的计算结果 0”

或者 0.5”。这样就会使计算结果符合考勤规则。

整个公式的意思,

如果 (HOUR(E2)-IF((E2-H2)*24)>=1,16,16.5)+(IF(MINUTE(I2)>=30,0.5,0)”的计算结果小

于 0”,则显示为空白,否则按
“(HOUR(E2)-IF((E2-H2)*24)>=1,16,16.5)+(IF(MINUTE(I2)>=30,0.5,0)”的计算结果显示。
这个公式是最复杂的,而且实际运用当中,也是有错误的。还需要继续学习来修正。
第六步:所有的计算到此都已经完成了,其他班次的只要在公式中将时间改一下就可以
了 , 如 B 班 , 在 计 算 上 班 的 考 勤 结 果 时 , 将 公 式 改 成
=IF(AND(D2>=VALUE("10:05"))=TRUE,"迟到",IF(D2=0,"未打卡",""))就可以了。
第七步:将各个班次的计算公式复制到每个人每天的那一行单元格中就可以了,计算结
果会自动显示出来,这里要注意的是,在复制的时候要对应好单元格,否则也会产生错
误,而且也会影响后面的考勤统计。
第八步,下面将进行统计公式的设置
1

、统计 迟到 的计算公式

=COUNTIF(厅面!F219:F249,"迟到")

这里是在同一个工作表中的不同工作薄中进行统计。公式的意思是计算 厅面 工作薄里
“F219” “

到 F249”这个数据区域(31 个单元格,代表 31

天)里 迟到 这个字符的数量有

几个。

” “

” “

” “

” “ ”

事假 、 病假 、 例休 的计算公式一样,只需把 迟到 改成 事假 或 病假 或 休 即可,

而且都是在 F”

列中取数据;但是 例休 的数据要在 C”

列即 排班 列中取数据。

2

” “

、统计 未打上班卡 和 未打下班卡 的计算公式

=SUM(COUNTIF(厅面!F219:F249,"未打卡")-J6)

公式的意思是计算 厅面 工作薄里 F219” “

到 F249”这个数据区域(31 个单元格,代表

31

天)里 未打卡 这个字符的数量有几个,再将计算结果减去 J6”

格中的数据, J6”格

是指每位员工例休的天数。因为按 考勤结果 的计算公式计算,员工在例休的时候,也会

” “

显示 未打卡 的记录。 未打上班卡 在 考勤结果(上班)列中取数据, 未打下班卡 在
“考勤结果(下班)列中取数据。
3

、统计 出勤天数 的公式

=SUM(31-J6-D6-E6-F6)

” “

” “

这个公式比较简单,只是个合计公式,用总天数减去 事假 、病假 和 例休 的天数即可。

要注意的是,在做统计公式的设置的时候,必须对应好每位员工打卡时间的单元格区域 ,
否则就会出错。
到此,全部工作就算完成了,所有的设置只需一次,以后在统计其他月份的考勤的时候 ,