关于VLOOKUP函数的用法,在网上已经有很多人,很多文章在讨论了,但是仍然没有穷尽VLOOKUP的用法,VLOOKUP真是一个神奇的函数啊!
这两天接到了一个神奇的问题,刚开始迷糊了老半天,突然灵光一闪,用VLOOKUP就轻松解决了。

这篇文章分享VLOOKUP的奇特用法
问题是这样的,某张数据表中有两个列,一列是"报关规格型号",另外一个是包含"报关规格型号"的比较长文本的"报关描述"列,怎么样判断"报关描述"列里面是不是正确包含了前面一列的"报关规格型号"呢?

原始表格数据,看起来有点多,有点慌
问题的难点是"报关描述"列中,"报关规格型号"的位置不确定,没有特殊的长度或分隔符来判断,这就有点不好搞了。
最开始的想法是想准备用查找函数Find()和文本替换函数去把它给替换取出来,后来觉得不可行。然后又考虑了用VBA的方法,写段代码来判断,但仍然觉得太复杂,
就在无比凌乱的时候,突然想到用VLOOKUP函数来解决!绝对是个妙办法。
VLOOKUP有四个参数:=vlookup(查找的值,查找范围,返回列,查找方式)
查找方式中有TRUE和FALSE两个选项,很多人都以为TRUE是模糊查找,其实并不是,准确地讲,应该是范围查找。
这次才是VLOOKUP真正的模糊查找,我们在查找的值前后连接上通配"*",这样查找起来就无敌了。
具体公式写法如下:=VLOOKUP("*"&K2&"*",L:L,1,FALSE)
这样如果是包含的,就会返回查找的那列,不包含的就报#NA的错误。
优化下写法,返回的结果更易读:=IF(ISERROR(VLOOKUP("*"&K2&"*",L:L,1,FALSE)),"没找到","正确")
结论:函数学无止境,用法灵活。
看完此文章对VLOOKUP的敬仰是不是又多了几分呢?其实我是很不喜欢VLOOKUP函数的。因为当数据量太大时,效率是很低的。所以我琢磨了另外一套方法,如果你有和我相同的想法,不妨私信我,切磋一下。
喜欢这篇文章,麻烦点关注,收藏、转发、评论,你的支持是我不断前行的动力!谢谢!