VLOOKUP功能是大家最喜欢的功能之一,可以帮助我们完成很多任务。在这里,让我们回到细节,再次探索VLOOKUP功能,从而进一步掌握这个常用的功能。
VLOOKUP函数有四个参数,其中第四个参数是可选的。如果我们在公式中忽略这个参数,我们有时会得到错误的结果。如图1所示,在小区A2:B6中查找编号为“2010”的名字,结果是“洗衣机”,显然不对,应该是“冰箱”。
图1
如果您对数字进行排序,您将得到正确的结果“冰箱”,如图2所示。
图2。
在VLOOKUP函数中,虽然第四个参数可以省略,但省略后其默认值为TRUE,表示近似匹配。要求搜索到的数据必须按升序排列,否则会得到意想不到的结果,如图1所示。
如果搜索到的数据列没有按升序排列,那么第四个参数的值应该显式指定为FALSE,也就是说,精确匹配可以得到正确的结果,如图3所示。
图3。
因此,当VLOOKUP函数的第四个参数被忽略或为TRUE时,将进行近似搜索,搜索到的数据列必须按升序排列才能获得正确的结果。相反,如果搜索到的数据列没有排序,VLOOKUP函数的第四个参数应该设置为FALSE,进行精确搜索。
下面让我们进一步探讨。
图4是所得税税率表。
图4
从图4可以看出,如果员工的收入是5000元,他要缴纳的税率是5%。如果另一名员工的收入是18,000英镑,他将缴纳15%的税率。
就以上两种情况而言,图4表格中的精确数字都与实际收入不符,只能找到实际收入之间的区间,从而找到相应的税率。这就是VLOOKUP函数第四个参数的真正含义,这就是为什么这个参数的英文名是“range_lookup”。
因此,当VLOOKUP函数的第四个参数为TRUE或被忽略时,告诉Excel进行区间搜索。此外,要找到图4的列a中的值,该值应该等于或小于但最接近搜索到的值。因此,图4中的查找表可以简化为下面的图5。
图5
此时使用第四个参数为TRUE或忽略的VLOOKUP函数时,当搜索到的值大于等于0且小于3000时,税率返回为0;当搜索值大于等于3000小于8000时,税率为5%。等等。
这就是为什么搜索列中的数据必须按升序排列的原因。
示例1:基本搜索。
如图6所示,要求找到收入为1万元的员工的税率,公式为:
=VLOOKUP(A10,A2:B6,2,真)
图6
例2:找个日期。
VLOOKUP函数可以找到最近的日期,如图7所示。在单元格E2中输入公式:
=VLOOKUP(D2,2:澳元,4.2澳元,真)
下拉至单元格E6。
图7
示例3:单列查找。
查找表可能只有一列,从中可以找到并返回间隔起始点的值。如图8所示,是2018年2月每周一的日期。
图8
现在,在图8所示的查找表中查找指定的日期,并返回该日期所在的星期一的日期。结果如图9所示。
图9
单元格D2中的公式为:
=VLOOKUP(C2,2:澳元,6.1澳元,真)
向下拖动到单元格D7。
示例4:比较两个列表。
有时,我们需要比较两个列表,以确定一个列表中的哪些项目包含在另一个列表中。如图10所示,有“库存”表和“用户需求”表。需要根据“用户需求”表中的数量,找到“库存”表中对应数量的价格,并将找到的结果输入“用户需求”表中。
图10。
您可以使用VLOOKUP函数来实现这一点,如图11所示。
图11。
在单元格F3中输入公式:
=VLOOKUP(D3,3:澳元6.2澳元)
下到F8牢房。
乍一看,似乎任务完成了!但是仔细看了一下,发现“用户需求”表中的数字1003和1005在“库存”表中并不存在,但还是得到了结果。看过这里的读者应该知道,公式中VLOOKUP函数的第四个参数被忽略,告诉Excel进行近似(区间)搜索,Excel会找到一个小于但最接近搜索值的值,并返回相应的结果。但是在我们的例子中,这不是必须的。我们想要的是,如果我们找到了数据,我们会返回相应的值,即使我们没有找到。
此时VLOOKUP函数的第四个参数应该显式设置为FALSE,当没有找到数据时,返回#N/A。如下图12所示。
图12。
单元格F3中的公式为:
=VLOOKUP(D3,3:澳元6.2澳元,FALSE)
现在,我们可以清楚地看到哪些数字对应于库存表中没有的价格,因为它们将显示# n/a
接下来,我们做了一些改进,使表格更清楚地显示结果,如图13所示。
图13。
单元格F3中的公式为:
=if错误(vlookup (D3,$ a $3: $ b $6,2,false),“无库存”)。
标签
使用VLOOKUP函数时,不能忽略其第四个参数。如果使用不当,会导致不正确的结果。但是,如果我们理解了第四个参数的真正含义,并正确使用它,不仅可以更合理地使用VLOOKUP函数,而且可以有趣地使用它。