下 关于VLOOKUP,你必须知道的23件事( 三 )


=VLOOKUP(order_id,order_data,5,FALSE)
公式最后的FALSE迫使VLOOKUP执行完全匹配 。你需要完全匹配,因为有可能找不到订单号 。此时,完全匹配设置将导致VLOOKUP返回#N/A错误 。
问题是完全匹配非常慢,因为Excel必须以线性方式遍历所有值,直至找到匹配或者不匹配 。
相反,近似匹配相当快,因为Excel能够执行所谓的二分查找 。
然而,二分查找的问题(VLOOKUP处于近似匹配模式)是当找不到值时,VLOOKUP可能返回错误的结果 。更糟糕的是,结果可能看起来完全正常,因此很难发现错误 。
解决方案是在近似匹配模式下使用VLOOKUP两次 。第1个实例简单地检查该值是否真的存在 。如果存在,另一个VLOOKUP运行(同样,在近似匹配模式)来获取想要的数据 。如果不是,可以返回你想要的任意值来指示没有找到结果 。
最后的公式形式如下:
=IF(VLOOKUP(order_id,order_data,1,TRUE)=order_id,VLOOKUP(order_id,order_data,5,FALSE),”Missing”)
注意,使用这个技巧时,数据必须已排序 。这只是一种防止查找值丢失的方法,同时保持快速查找 。
23.INDEX和MATCH组合能够做VLOOKUP能够做的任何事情,甚至更多
INDEX和MATCH组合与VLOOKUP孰优孰劣,在网上有许多争论 。
INDEX+MATCH可以完成VLOOKUP(和HLOOKUP)所能做的所有事情,并且更灵活,但也更复杂 。因此,支持INDEX+MATCH的人会说,最好先学习INDEX和MATCH,因为最终会提供给你一个更好的工具集 。
反对INDEX+MATCH的观点是需要两个函数,因此对用户来说,学习和精通更复杂 。
如果经常使用Excel,需要学习如何使用INDEX和MATCH,这是一个非常强大的组合 。
【下 关于VLOOKUP,你必须知道的23件事】但也应该学习VLOOKUP,因为经常会在很多工作表中发现VLOOKUP的使用 。在直观的情形下,VLOOKUP可以毫不费力地实现目的 。

推荐阅读