在上一期10个示例让你的VLOOKUP函数应用从入门到精通(上)中,我们介绍了5个示例,下面介绍另外的5个示例 。
示例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函数中的查找值不区分大小写 。例如,查找值是MATT、matt、或者Matt,对于VLOOKUP函数来说都是一样的,返回找到的第一个匹配值而不管大小写 。
如果想执行区分大小写的查找,那就需要与VLOOKUP函数一起使用EXACT函数 。
如图15所示 。
文章插图
图15
可以看到,单元格A2、A4和A5中有相同的姓名但大小写不同,在右侧是相应的数学成绩 。
由于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} 。
推荐阅读
- 下 关于VLOOKUP,你必须知道的23件事
- 灵魂战记txt全集下载
- Excel VBA MsgBox函数
- VLOOKUP函数
- 精选30句 关于最喜欢下雪天的说说
- 下雪之前下的小冰粒是什么
- IF函数
- 建筑下水道的清道夫是什么动物
- excel常用函数查找并比较时间
- 多玩上支持下载的3ds游戏