这种情况下还怎么用VLOOKUP函数查找数据?
送人玫瑰,手有余香,请将文章分享给更多朋友
动手操作是熟练掌握EXCEL的最快捷途径!
VLOOKUP函数使我们使用最频繁的EXCEL函数之一,很多朋友们在接触EXCEL时最先学习到的函数就是它了。如果大家还对VLOOKUP函数不是很熟悉,请参看这里总结篇--VLOOKUP函数技巧汇总。
今天,我就和大家在分享一个例子,看看这次VLOOKUP函数还能不能大显神通?
如下例,左侧是文具的名称及价格,右侧也是文具的名称,但是有后缀或者前缀,文字符号都有,怎样进行匹配呢?
看起来好像有一定的难度啊。我们不能直接就使用VLOOKUP函数进行匹配。但是这个数据结构让我想到了另外一组函数组合--LOOKUK+FIND函数。对,使用LOOKUK+FIND函数可以更简单的解决问题。
在单元格E2中输入公式“=LOOKUP(0,-FIND($A$2:$A$7,D2),$B$2:$B$7)”,回车后向下拖曳即可。
思路:
首先利用FIND函数在单元格D2中查找区域$A$2:$A$7中的文具名称。按照FIND函数的特点,如果能够查找到,就返回一个具体的数字,查找不到就返回错误值。这里返回的结果是{3;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
-FIND($A$2:$A$7,D2)部分是这里的关键。利用负号“-”将第一个查找到的位置信息变为“-3”,方便后面LOOKUP函数进一步查找
这里使用的是LOOKUP函数向量形式。它的语法结构为:
LOOKUP(lookup_value, lookup_vector, [result_vector])
Lookup_value 必需。LOOKUP 在第一个向量中搜索的值。Lookup_value 可以是数字、文本、逻辑值、名称或对值的引用。
lookup_vector 必需。只包含一行或一列的区域。lookup_vector 中的值可以是文本、数字或逻辑值。
result_vector 可选。只包含一行或一列的区域。result_vector 参数必须与 lookup_vector 参数大小相同。其大小必须相同。
如果 LOOKUP 函数找不到 lookup_value,则该函数会与 lookup_vector 中小于或等于 lookup_value 的最大值进行匹配。
如果 lookup_value 小于 lookup_vector 中的最小值,则 LOOKUP 会返回 #N/A 错误值。
最后,利用LOOKUP(0,-FIND($A$2:$A$7,D2),$B$2:$B$7)返回对应的商品价格。
有关于LOOKUP函数的具体介绍,请参看帖子总结篇-LOOKUP函数实用终极帖。
有的朋友会问了,上面的例子中查找区域和源数据区域中的商品排列顺序是一致的,可以使用LOOKUP函数。那么如果排列顺序不一致是,还能正常使用吗?
答案是,依旧可以正常使用。原因就于FIND函数这里。
FIND函数的语法结构如下:
FIND(find_text, within_text, [start_num])
find_text 必需。要查找的文本
within_text 必需。包含要查找文本的文本
start_num 可选。指定开始进行查找的字符。within_text 中的首字符是编号为 1 的字符。如果省略 start_num,则假定其值为 1
这里的关键就在于,我们把源数据区域$A$2:$A$7作为了查找值,在单元格D2中查找这些值。无论源数据和查找数据的排列顺序是否一致,都不影响最终的查找结果。比如说,我们在D2(蓝色圆珠笔)中查找$A$2:$A$7,它返回的结果是{#VALUE!;3;#VALUE!;#VALUE!;#VALUE!;#VALUE!},其中“3”所对应的商品就是“圆珠笔”,因此说,无论查找数据的排列顺序如何,都不影响最终的查找结果。
好了,今天和大家分享的就是这些了!
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
我就知道你“在看”