这种情况下还怎么用VLOOKUP函数查找数据?

送人玫瑰,手有余香,请将文章分享给更多朋友

动手操作是熟练掌握EXCEL的最快捷途径!

VLOOKUP函数使我们使用最频繁的EXCEL函数之一,很多朋友们在接触EXCEL时最先学习到的函数就是它了。如果大家还对VLOOKUP函数不是很熟悉,请参看这里总结篇--VLOOKUP函数技巧汇总

今天,我就和大家在分享一个例子,看看这次VLOOKUP函数还能不能大显神通?

如下例,左侧是文具的名称及价格,右侧也是文具的名称,但是有后缀或者前缀,文字符号都有,怎样进行匹配呢?

01

看起来好像有一定的难度啊。我们不能直接就使用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函数实用终极帖

02

有的朋友会问了,上面的例子中查找区域和源数据区域中的商品排列顺序是一致的,可以使用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操作问题时不再迷茫无助

我就知道你“在看”

推荐阅读
(0)

相关推荐