VLookUP与时间函数结合也能制作出美观的日历考勤核对表

提示:本文内容较长,不实际操作的话也不容易懂,请耐心阅读

好些公司的考勤记录导出来是Excel表格文件,如何轻松的核对考勤记录就成了HR头大的问题,有些考勤记录则是每个员工一行记录,靠人眼来看谁是否迟到了真的是看的眼晕,还有的是每人多行记录,需要一条条的向下看,也不方便,那么在Excel表格中是否有清晰直观的考勤核对方法了?

通过公式可以实现如上图所示的日历样式一样的核对方法,每个人的考勤可以直接在日历表中直观的显示,迟到的显示为红色,看其他员工时也无需修改公式。

本例中只做了对早上打卡记录的判断,如果要判断下班是否早退,需要自己完善,道理上是一样的,怎么判断了?就是对时间做减法,早上的考勤记录用下班时间相减的话,值会很大,用IF判断后忽略掉就行了,如果想做的很美观,可以用图片做个透明度覆盖上去,本例一切从简。

处理原始的考勤记录表

这里所用到的考勤记录表是每次考勤记录为一行,一个人有多行的考勤记录,可以简化为工号、日期,然后在日期前插入一列,使用Day函数来提取一下日期中的天数部分,如下图。

为了便于公式中引用,使用Ctrl+T把区域数据转换为列表(表格),每次我们在这里粘贴一名员工的考勤记录。

在新工作表中计算早上是否迟到

新建一个工作表sheet3,在第一行输入数字1~31,向右拖动就能方便的生成,代表每个月的31天,有30天的月份也没事。

在第二行中使用vlookup来查找每一天所对应的时间,我们分几步来做,便于理解

1、用vlookup来匹配考勤记录例表,公式=VLOOKUP(A1,表2[[#全部],[几号]:[日期]],2,FALSE),会匹配到每天的第一条记录。

2、使用Text函数来提取结果中的时间部分,把Text套在vlookup的外面就可以了,参数使用"h:mm",公式:=TEXT(VLOOKUP(A1,表2[[#全部],[几号]:[日期]],2,FALSE),"h:mm")

3、把时间按小时和分钟都转换成分钟,转换后的结果是数字值,使用Hour和minute函数,同样的,继续套在第2步的公式外面,公式看上去很吓人,其实就是使用了前边的公式,仔细看很简单,第2步的公式用加粗表示。

hour乘以60是把小时转换成分钟数

=HOUR(TEXT(VLOOKUP(A1,表2[[#全部],[几号]:[日期]],2,FALSE),"h:mm"))*60+MINUTE(TEXT(VLOOKUP(A1,表2[[#全部],[几号]:[日期]],2,FALSE),"h:mm"))

4、我们公司早上的考勤时间是8:20,如果是8:20以后来的就算迟到,把8:20换算成分钟数就是8*60+20=500

5、用8:20的分钟数500来减用户打卡的时间分钟数,需要引用第3步的结果,公式:

=500-(HOUR(TEXT(VLOOKUP(A1,表2[[#全部],[几号]:[日期]],2,FALSE),"h:mm"))*60+MINUTE(TEXT(VLOOKUP(A1,表2[[#全部],[几号]:[日期]],2,FALSE),"h:mm")))

6、向右拖动公式,计算出这个月每一天的考勤情况,拖动时公式会自动改变,不用你操心参数不正确的问题。

到目前为止,单个用户一个月中是否有迟到已经在一行中计算出来了,那么怎么直观的把它显示在日历一样的表格中了?

制作日历样的表格

这一步很简单,就是充分发挥你的想像力和动手能力,在Excel 中尽量的画出像日历一样的格子来,使每一天和周六日都对应起来,也可以插入个图设置透明度后放去使其更美观,这里是画了个最简单的样子。

把计算结果填充到日历样表格中

考勤计算的结果放在一行中看显然是很不直观的,把它引用到做好的表格中来吧,如10月1日是周二,那么我们就把1号的考勤结果放到周二的下面,也分为几步来完成

1、直接引用单元格的内容,显示到日历表格中,为了直观,前面做了一个对照日历。

2、使用if函数增加一个简单的判断,如果内容是数字,那么显示内容,如果不是数字,那么显示空白,有些时候员工休息没打卡,如果不做处理的话会显示N/A,公式为:

=IF(ISNUMBER(A2),A2,"")

3、向右拖动公式,拖出一个月的来,当然了每一行开头的需要手动修改一下,一个月的考勤结果就在日历表中显示出来了。

4、增加条件格式,使小于0的单元格背景色显示为红色,这样更加醒目,下图是应用了条件格式后的效果。

到此为止,我们已经成功的把一个员工的早上考勤计算结果在日历中显示出来了,是不是比直接看表格中的考勤记录要直观很多了。

如果想看个其他员工的考勤记录需要怎么处理了?还记得前面让你把考勤数据区域转换成列表吗,直接把别的员工考勤记录粘贴在那里就可以了,而无需在新表sheet3中做任何的改动。

换个员工的考勤记录看看

1、清除掉考勤工作表的内容,只保留标题部分,因为它本身是个列表。

2、把别的员工的考勤记录粘贴进来,其实只粘贴考勤时间就可以了,因为你保留了一行,所以列表会自动生成公式并应用,无需你操作,然后删除保留的那行就可以了。

3、这时点击切换到工作表sheet3,会发现考勤计算的结果已经是这个员工的了,而无需你更改任何公式。

总结:到此为止,我们实现了把员工一个月中每天早上的考勤结果显示在了一个像日历一样的表格中了,非常的直观,想要看别的员工的只需要粘贴记录到考勤表就可以了,结果自动更新。

当然了我们有自己做的考勤软件,比这个更加的方便,这个只是讨论一下在excel中实现考勤显示的可行性。

举报
评论 0