Excel中的MAX函数,相信大家都有用过,作用是用来求一组数据中的最大值。但除了这个功能之外,还有一个大家所不知道的隐藏技巧,用来查询数据。 查询数据,大家的第一反应都是用VLOOKUP或LOOKUP,虽然这两个函数的功能已足够强大,但有时候有些查询VLOOKUP是无法解决的,例如:查找公司员工一天中最晚一次打卡时间,用VLOOKUP无法解决,但是用MAX函数,一下子就搞定。 下面讲两个用MAX函数查找的例子,记得点赞转发哦~ 实例1:在考勤表中求出每个员工一天内的最晚打卡时间。要求:下图中A列和B列单元格区域是员工上班的打卡时间,我们要在E列中求出每一个员工一天中最晚一次打卡的时间。 具体操作步骤如下: 1、选中E2单元格 -- 在编辑栏中输入公式“=MAX(($A$2:$A$18=D2)*$B$2:$B$18)”-- 按组合键“Ctrl+Shift+Enter”结束公式。 2、选中E2单元格 -- 将鼠标光标定位到单元格右下角,出现“十”字符号按快捷键“Ctrl+E”填充公式,即可得到每个员工最后一次打卡时间。 3、动图演示如下。 【公式解析】 $A$2:$A$18=D2:判断A列单元格内容有哪些是与D2单元格内容相等的,如果相等,返回TRUE,否则,返回FALSE。我们在编辑栏中选中$A$2:$A$18=D2,即可看到公式返回的结果。 ($A$2:$A$18=D2)*$B$2:$B$18:如果$A$2:$A$18=D2返回TRUE,与B列的内容相乘,返回B列对应单元格的值,如果$A$2:$A$18=D2返回FALSE,与B列的内容相乘,结果为0。 这道题除了使用MAX函数,其实我们也可以使用LOOKUP函数。 具体操作步骤如下: 1、选中E2单元格 -- 在编辑栏中输入公式“=LOOKUP(1,0/($A$2:$A$18=D2),$B$2:$B$18)”-- 按回车键回车。 2、选中E2单元格 -- 将鼠标光标定位到单元格右下角,出现“十”字符号按快捷键“Ctrl+E”填充公式,即可得到每个员工最后一次打卡时间。 3、动图演示如下。 【公式解析】 $A$2:$A$18=D2判断这个区域中是否等于D2单元格的姓名,如果是,返回TRUE,否则,返回FALSE。TRUE=1,FALSE=0。利用LOOKUP的特性(忽略错误值),所以用0除TRUE和FALSE,0/($A$2:$A$18=D2)满足条件返回0,不满足返回错误值。公式变成“=LOOKUP(1,0/{#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;0;0;0;#DIV/0!;#DIV/0!;},$B$1:$B$2)”。 可以看到以上公式的数组中只返回3个0,其他都是错误值。二分法使得LOOKUP只能找到不大于查找值的最后一个数字,因此只能找到0,最后根据0的行位置(第14-16行)得到第3个参数对应位置的数据,而MAX可以返回数值中的最大值,所以返回B16单元格的内容。 实例2:根据学号或姓名查找对应的测评总分。要求:下图中A1:D10单元格区域是学生信息表,我们要在G列中求出学号或姓名对应的测评总分。 具体操作步骤如下: 1、选中G2单元格 -- 在编辑栏中输入公式“=MAX(($A$2:$B$10=F2)*$D$2:$D$10)”-- 按组合键“Ctrl+Shift+Enter”结束公式。 2、选中G2单元格 -- 将鼠标光标定位到单元格右下角,出现“十”字符号按快捷键“Ctrl+E”填充公式,即可得到学号或姓名对应的测评总分。 3、动图演示如下。 以上我们用MAX函数解决了VLOOKUP函数解决不了的难题,下次别人再问你MAX函数可以用来做什么,你就不要开口说只可以用来求最大值了。 注意:使用MAX函数时查找结果应为数字并且查找结果应升序排序哦~ |
|