最近,有一个HR的朋友哭着找到我,说他们老板为了让员工不用扎堆排队打卡,特意多安装一个考勤机在门口。不用再因为排队耽搁那么一两分钟而没了全勤奖。
这个HR朋友说这原本是好事,但是到月底导出考勤数据的时候,她就坐不住了,原来啊,有的员工有时候在1号考勤机打卡,有的时候在2号考勤机打卡,导致两份考勤表都有这些员工的考勤数据。
现在需要将两个考勤表的数据合并到一块形成一份完整的考勤表。
看在她如此“可怜”的份子上,我对她说要将这两个工作表合并到一块,其实很简单;给我一分钟,我来帮你搞定它。
第一步:我们先观察表格的结构,发现表格的位置占位一致,不一样的是考勤时间,有些在表一,有些在表二,那么,我们在新工作表(薄)相同位置新增一个考勤表三。
第二步:在考勤记录表三的B5单元格输入这个函数:
=IF(MOD(ROW(考勤表1!A5),2)=1,考勤表1!A5,CONCATENATE(考勤表1!A5,考勤表2!A5))
并将公式横拉下拉,得到全新的考勤表3,并且该考勤表就是表一与表二的合并表格。
对于IF(MOD(ROW(CONCATENATE也不难理解,
首先,外围是一个IF函数,进行逻辑判断,其语法简单可描述为(当某个条件成立时,就等于这个值,否则就等于另外一个值),这里的某个条件就是(MOD(ROW(考勤表1!A5),2)=1)。
其中MOD函数是求两个数的余数,语法是(被除数,除数),ROW函数是返回单元格所对应的的列。
在这案例中,ROW(考勤表1!A5)返回的结果就是5,并将5作为MOD的第一个参数,跟固定值2(MOD在本案例中的第二个参数)相除。这里我们用到的是奇数偶数与2相除的余数规律。当数值为奇数时,其余数为1,反正,余数为0.这也就是IF函数的条件判断。
当条件成立时,得到等于考勤表一相对行列的数据,不成立时等于CONCATENATE的运算结果,这里CONCATENATE的作用就是合并,和我们的&作用一致,是将两个单元格内容合并成一个内容。
然后得到咱们新的考勤表数据,这个时候,我们发现有些空白的地方,无论是合并还是被赋值都显示0,我们需要将这个考勤表的0去除或隐藏。
可以先复制整个工作表,选择性粘贴为数值,然后Ctrl H,查找0,替换为空白值(注意,为了避免某些单元格字段中的0也被替换,可以将替换选项卡中单元格匹配打√)
最后一步,保存收工。过程用不到1分钟,搞定你的工作表合并。
,