Hello,大家好,今天跟大家分享下午我们如何查找数据中的第一条记录和最后一条记录,这也是一个粉丝提问到的问题,他们公司的打卡机是感应式的,每当人经过就会打一次卡,每天都会生成很多打卡记录,每天都花费很多时间来统计公司员工的上下班时间。我们可以将第一次打卡看做是上班时间,将最后一次打开看作是下班时间。对于这样的问题我们使用vlookup函数级lookup函数就能快速搞定
一、排序
首先我们点击按Ctrl+a选择所有数据,然后点击排序,选择自定义排序,然后在自定义排序的窗口中点击添加条件,我们将主要关键字设置为姓名,将次要关键字设置为打开时间,并且将次序设置为升序,点击确定,这样的话,每个人的打开时间都聚集在一起了,并且是从小到大的
如果你确定你的数据源是从小到大进行排列的话,这一步可以省略。当然直接将打卡时间进行升序排列也行,在这里我将名字也进行了排列是因为在讲解查找最后一条数据的时候比较方便
二、查找第一条记录(上班时间)
查找第一条记录,我们使用vlookup函数就能轻松搞定,只需要在单元格中输入函数=VLOOKUP(F3,A:B,2,0)点击回车向下填充即可
为什么这么做可以精确的查找到上班时间呢?这是因为当vlookup函数在查找数据的时候,如果遇到重复值,函数仅仅会返回第一个查找到的结果,而在这里我们将打卡时间升序排序,数据是从小到大进行排列的,所以会查找到精确的结果
三、查找最后一条记录
查找最后一条记录,我们使用的lookup函数,只需要在对应的位置输入公式=LOOKUP(1,0/(A2:A100=F3),B2:B99),然后点击回车向下填充公式即可
使用lookup函数我们需要将数据进行升序排序,在第一步中我们已经升序排序过了,下面跟大家简单的介绍下这个函数的计算原理,在这里我们主要跟大家讲解下lookup函数的第二参数:0/(A2:A100=F3),在这里它是一个分数,分子是0分母是A2:A100=F3,而A2:A100=F3这是一个数组公式就代表A2:A100这个区域的数据都会与f3这个单元格包含的值计算一次。我们就以安其拉为例跟大家演示下它是如何计算的
首先我们让a列的数据都等于安其拉这个值,因为这个是一个条件表达式,所以他的结果是有true或者false,我们可以将true看做是1,false看做是0,然后我们再用0除以得到的逻辑值,如果分母为0就会返回错误的值,而lookup可以将错误值忽略掉,所以当查找安其拉的时候下面橙色的区域才是lookup的查找区域,因为lookup函数的查找值是1,在这个区域是没有1的,所以函数会返回小于查找值的最大值,而最大值对应的正好是最后一次打卡的时间,所以可以查找到正确的结果
如果你感觉理解起来比较困难的话,直接记住这个函数的固定套路即可,可以直接套用
怎么样?你学会了吗?
我是excel从零到一,关注我持续分享更多excel技巧