Excel数据透视表根据打卡时间计算是否迟到,需要注意格式
讲了根据打卡时间计算员工有没有迟到并计算迟到人数,但有位朋友提出问题:公式不对!为什么8点之前打卡,也是迟到?
查看他传过来的数据表,时间的格式是这样的!如下表:
表面上看起来是仅仅是时间,但真实数字是日期+时间,只不过通过单元格格式设置为只显示时间。
原来过:
日期在EXCEL里是整数,是距1900年1月1日的天数;
时间是小数,24小时是一天,所以24点是1,其他时间都是小数。
在这个表中打卡时间是日期+时间,就不能直接和1/3(8点)比较,因为日期+时间肯定都大于1/3,直接套用昨天那篇文章中的公式就会出错。
公式实现一、统计是否迟到
在C2单元格输入公式:
=IF(–TEXT(B2,”hh:mm:ss”)>1/3,”迟到”,””)
并往下填充,即可计算出每位员工是否迟到。
如下图:
TEXT(B2,”hh:mm:ss”):
将日期+时间的单元格值,通过TEXT函数只保留时间,精确到秒。TEXT是文本函数,得到的时间是文本格式。
–TEXT(B2,”hh:mm:ss”):
通过减负运算,将文本格式的时间转换为数值格式。
IF(–TEXT(B2,”hh:mm:ss”)>1/3,”迟到”,””):
将数值格式的时间与1/3(8点)比较,如果大于1/3,即是晚于8点,为迟到,否则返回空值。
二、直接利用打卡时间,统计迟到人数
在B17单元格输入公式:
=SUMPRODUCT(N(–TEXT(B2:B16,”HH:MM:SS”)>1/3))
即可直接依据打卡时间,统计出迟到总人数。
如下图:
本公式中的TEXT与减负(–)运算参考上一部分是否迟到公式的解释;SUMPRODUCT的用法参考昨天的文章。