因为公司没有OA系统,请假申请要走纸质单,我就做了一个可以审批的excel,可以实现如下功能:
1)员工信息自动获取;
2)自动计算需要请假时间(扣除中午休息、跨天计算)
3)指定人员的电脑才能标记“审批”
4)审批后,该行信息不得修改
5)自动计算剩余年假
6)自动生成纸质请假单
7)自动生成可以打印的签名纸质单(可以不用手签字)
其中的难点是:
1)请假时间的计算,需要考虑几个事情:
a)抠掉中午休息时间;b)抠掉法定节假日和周末;c)跨天计算
详情如下:
a)如何抠掉中午的休息时间?
试想开始时间是A,结束时间是B;中午休息时间是从C到D;
分为几种情况,经过简单的逻辑推算,相应的公式为:
如果和休息时间有交集,则MIN(B,D)-MAX(C,A)------这就是需要抠出的中午休息时间;
b)去掉法定节假日就比较简单,用 NETWORKDAYS.INTL(),法定节假日预先设置到另外一个表格中。
法定国假列表
最终的完整公式:
ROUND((IF(F486=H486,0,NETWORKDAYS.INTL(F486,H486,1,国定假日列表!$B$2:$B$145)-1))*8-(G486-8.5/24)*24+(I486-8.5/24)*24-IF(OR(I486<=11/24,G486>=11.5/24),0,MIN(I486,11.5/24)-MAX(11/24,G486))*24,1)
2)设置指定人员才能“审批”,具体的步骤如下图:
这样只有指定的人才可以修改这个区域,也可以设置密码。
3)审批后,此行信息不得修改。
这里使用数据验证,如果这行的审批列为“OK”,则无法修改。
采用的方法是设置数据验证中的自定义公式。
4)审批信息生成纸质单,此处增加一列,如果需要打印,则选择,然后在请假单页面显示相应信息。
这里面涉及到match()和offset(),以及时间的取整等(小时/分钟和天的转化)
5)增加自动签名图片显示
在打印页面,如果选择了打印,而且审批选择“OK”,则签名的图片可以自动显示出来:
这个比较炫,需要名称定义和映射。
这个比较适合没有OA系统,这样就可以远程办公审批了,稍加修改,也可以做其它的审批。
所以,通过折腾这个表格,可以学习和熟悉很多公式和操作,包括数据验证、max()、min()、vlookup()、ifna()、NETWORKDAYS.INTL()、roundup()、offset()、match()、text()等等
如有相似应用场景的,欢迎收藏、留言、评论。
#excel教学##职场excel小技巧##考勤##人事##excel函数公式大全##office##文员#