excel表汇总考勤表,并删除空格处,统一行数

如图:图1是原始的表格,用快捷的功能做出图2的效果,方便观看!

你们考勤机也太落后了吧,签退时间还这么乱,有的在签退列,有的又在签到列。升级打卡机才是硬道理。

再你的截图也和你们的打卡机一样,有残缺不全。图1既没有工号,也没姓名,更不用说左边的行号了。姑且假设A列为工号,B列为姓名吧。

比较简单的方法可分两步来实现:

第一步,补齐签退时间,如图,在G列的G2中输入公式:

G2=IF(E2>0,E2,IF((C3=C2)*(D3>0),D3,""))

双击填充柄或下拉,在G列补充完整签退时间。然后复制G列,在E列中粘贴数值。

第二步,用高级筛选法把E列有签到时间的数据筛选出来。

在右侧空列,如I列的I2(上面至少保留一个空格)中输入高级筛选条件:

=ISNUMBER(E2)

数据菜单——排序和筛选——高级,调出高级筛选对话框,列表区域(要筛选的数据区域)选择A1:F30(根据实际考勤表选择),条件区域选择I1:I2(一定要包括筛选公式及上面的一个空白单元格),选择筛选后目标区域第1个单元格,如K1,并可勾勾选“将筛选结果复制到其他位置”,确定后,立马得到筛选结果。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-10

数据表

一、在G1输入12:00,表示当时间大于12:00点的时候,为签退时间,此时间可根据自己的情况进行更改

二、G2输入公式

G2=IF(E2<>"",E2,IF(D2>$G$1,D2,""))

把D列大于12:00的时间找出来为签退时间,此时,G列签退时间与D列签到时间不在一行。

请点击输入图片描述

三、解决G列签退时间与D列签到时间不在一行的问题,在H2输入公式

H2=IF(E2<>"",E2,IF(D3="","",IF(D3=G3,D3,IF((D3=G3)=FALSE,""))))

四、复制H2:H27,选择性粘贴到I列-----数值-----加

进行此步的原因是:用公式计算出来的H列数据中的空值(空的单元格)为假空,而不是真空,对我们后续进行的选择空值操作有影响,所以把假空变为真空。

这里说一下,将I列小数变为时间格式

选中I列,CTRL+1-----自定义----hh:mm

五、复制I2:I27粘贴到对应的E2:E27

选择D2:E7,F5---定位条件----空值

这样就看到所有空格都被选中了

在第一个空单元格进行:右键----删除----整行

得出结果

第2个回答  2019-08-09
用辅助列 在E列输入公式 =left(D1,11)下拉 然后复制E列,选中D列》选择性粘贴》数值》确定》删除E列》完成追问

有没有具体一点的,看不懂

本回答被网友采纳
第3个回答  2019-08-09

    全选E行,定位空值公式求值,判断包含单元格左下不为空且大于左边单元格,真,等于左下单元格,假为空

    全选E行,复制,选择性粘贴数值复制在E行

    全选E行定位空值删除行

追问

不懂,有没有图片一步一步教学

第4个回答  2019-08-27
最快的方法,就是签到时间列筛选一下非空内容即可。
因为你这些数据应该是考勤系统导出来的,每个月不一样,每次贴公式也麻烦。
希望能帮上忙!追答

请问问题解决了吗?