分享

10个示例让你的VLOOKUP函数应用从入门到精通(下)

 Excel实用知识 2021-05-01

示例6:使用通配符进行部分查找

当需要在列表中查找一个值但没有完全匹配时,需要部分查找。

如图11所示,如果想要查找列表中的“长江”,但是列表中只有“长江发电集团”。

图片

11

由于列A中没有完全匹配,因此不能使用“长江”作为查找值。近似匹配也会导致错误的结果,并且需要列表以升序排序。

然而,可以在VLOOKUP函数中使用通配符来获得匹配。

在单元格D2中输入公式:

=VLOOKUP("*"&C2&"*",$A$2:$A$6,1,FALSE)

并向下拖至单元格D6,如图12所示。

图片

12

在上面的公式中,不是按照原样使用查找值,而是在其两侧连接了星号(*)通配符。星号通配符可以代表任意数量的字符。

这样,告诉Excel需要查找包含单元格C2中文本的任意文本。在示例中,遍历A2:A6并查找其中包含“长江”的单元格。

注意,如果列表中有两个单元格都含有“长江”,那么VLOOKUP函数只返回第1个找到的值。

示例7:尽管匹配查找值但返回错误

有时候,明明有匹配的查找值,但VLOOKUP函数却返回错误。

例如,下图13所示,列表中有一个匹配值“Matt”,但VLOOKUP函数仍然返回错误。

图片

13

其实,我们看到的只是表面,没有看到列表中文本字符串的前后可能存在空格。如果在文本字符串中有额外的空格,包括之前、之后或中间的空格,都不是一个匹配值。

这是从数据库或者从其他地方导入数据时经常会碰到的情况。

可以使用TRIM函数来解决这个问题。TRIM函数移除文本字符串中的前导或尾部的空格,或者中间多余的空格。

下面的公式获得正确的结果:

=VLOOKUP("Matt",TRIM($A$2:$A$9),1,0)

这是一个数组公式,输入完后要同时按下Ctrl+Shift+Enter键。

图片

14

示例8:执行区分大小写的查找

默认情况下,在VLOOKUP函数中的查找值不区分大小写。例如,查找值是MATTmatt、或者Matt,对于VLOOKUP函数来说都是一样的,返回找到的第一个匹配值而不管大小写。

如果想执行区分大小写的查找,那就需要与VLOOKUP函数一起使用EXACT函数。

如图15所示。

图片

15

可以看到,单元格A2A4A5中有相同的姓名但大小写不同,在右侧是相应的数学成绩。

由于VLOOKUP函数不具备区分大小写查找值的功能,因此上面的示例中将总是返回数值38

要使之区分大小写,需要使用辅助列,如图16所示。

图片

16

在单元格B2中输入公式:=ROW(),下拉至单元格B9,填充辅助列,这些数值为单元格所在行的行号。

在单元格F2中输入数组公式:

=VLOOKUP(MAX(EXACT(E2,$A$2:$A$9)*(ROW($A$2:$A$9))),$B$2:$C$9,2,0)

其中:

  • EXACT(E2,$A$2:$A$9)——将单元格E2中的查找值与单元格区域A2:A9中所有的值进行比较,返回由TRUE/FALSE组成的数组{TRUE;FALSE;FALSE; FALSE; FALSE; FALSE; FALSE; FALSE},其中TRUE表示完全匹配。

  • EXACT(E2,$A$2:$A$9)*(ROW($A$2:$A$9))——将行号与上面由TRUE/FALSE组成的数组相乘,TRUE值将最终得到行号数字,其他的为0。本例中为{2;0;0;0;0;0;0;0}

  • MAX(EXACT(E2,$A$2:$A$9)*(ROW($A$2:$A$9)))——从上面所得的数组中返回最大值。本例中为2

  • 将上面得到的值2作为查找值并在单元格区域B2:C9中执行查找返回相应的值。

示例9:多条件查找

在最基本的VLOOKUP函数用法中,查找一个查找值,返回找到的值所在行相应的值。但是,经常会碰到使用VLOOKUP函数执行多条件查找的情形。

如图17所示,表中有学生姓名、测试的类型以及数学成绩。

图片

17

要得到每个学生每类测试对应的数学成绩,需要创建一个唯一的查找值。为此,添加一个辅助列,如图18所示。

图片

18

在单元格C2中的公式:

=A2&”|”&B2

 下拉至单元格C16。这样,在列C中创建了一个唯一值列表,能够使用这个辅助列作为查找值。

在单元格G3中的公式为:

=VLOOKUP($F3&"|"&G$2,$C$2:$D$16,2,0)

向右向下拖放至单元格区域G3:I7,结果如图19所示。

公式中将学生姓名和测试类型组合作为查找值。

图片

19

在示例中,我们组合两个文本作为辅助列时使用了分隔符,这能避免一些意想不到的情况。如下图20所示,如果不使用分隔符,组合后的值会相同。

图片

20

示例10:在使用VLOOKUP函数时处理错误

在不能找到指定的查找值时,VLOOKUP函数返回错误值,你可能不希望这些错误值影响数据的美观。

可以使用有意义的文本诸如“没有找到”来代替错误值。

在图21中,试图查找黄蓉的成绩,但返回一个错误值#N/A,因为列表中没有这个名字。

图片

21

下面使用IFERROR函数配合VLOOKUP函数让有意义的文本代替错误值:

=IFERROR(VLOOKUP(D2,$A$2:$A$6,2,0),"没有找到")

IFERROR函数检查第1个参数的返回值是否为错误值,如果不是错误值则返回该值,否则返回第2个参数的值,本例中为“没有找到”。

图片

22

如果是Excel 2007以前的版本,则使用公式:

=IF(ISERROR(VLOOKUP(D2,$A$2:$B$6,2,0)),"没有找到",VLOOKUP(D2,$A$2:$B$6,2,0))

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多