同一个单元格考勤,考勤导出数据是这种一个单元格里存放上下班打卡时间,而且还是分两个班次,一共四次打卡记录,需要计算两次上班的公式,就可以按照这样的思路来进行。
第一步:找出错误的考勤数据,然后拆分单元格中的考勤时间。最后计算公式。错误的考勤数据包括:未打卡、少打卡或者多打卡。注意这里计算的时间只是在同一天内,我们可以使用条件格式来突显这些错误数据。使用 if 判断未打卡就返回 1,否则进行下一步判断。
通过 len 函数和 substitute 函数判断,共出现几次冒号,用来判断打卡几次。只需要确定打卡四次就返回 0,否则返回 1。
第二步:选中所有数据区域。注意,刚刚的公式是从 A1 设置的,所以选择区域也要从 A1 开始设置条件格式。新建规则则使用自定义公式,把刚刚写好的公式复制粘贴进去,设置填充颜色。此时公式结果为 1,则填充颜色为 0,则不填充颜色,点击确定。除了上面日期和左侧姓名,其余打卡时间区域显示报错的都是异常数据,需要手动修改成正常的数据。
第三步:拆分打卡时间。在新的工作表 A1 单元格上输入等于考勤表 A1,然后拖动填充柄上下左右填充,直到显示完整的考勤表数据。
接下来在第一个考勤单元格上面输入公式,使用 textsplit 函数拆分时间,其中的分隔符要根据你的实际情况来设置,比如视频案例中是换行符,因为没有直接的符号 20,需要使用函数 char(10) 来代表。如果你的换行符是分号,可以直接输入分号,并用英文双引号包裹 20。
第四个参数:忽略空值。(..FALSE-包括空单元格,一定要设置上,回车后即可获得拆分后的数组。使用 index 函数提取第二位数据,即可获得第二次打卡时间。再用 index 提取第 1 位数据,二者相减即可得到第一班次的工时。
此处可以用 text 函数调整一下工时的显示格式。再用相同的方法计算下一个班次的工时。如果要同时显示两个班次的公式,则再用链接符号链接起来。完整公式如下:如果要获得总工时,则直接相加。完整公式如下。最后填充公式到其他打卡单元格,即可获得一张工时计算表。