Vlookup查询时不能区分大小写该怎么办?

2018-11-06 10:41:17 0 0

前几天有个小伙伴问,说是Vlookup函数有个Bug,就是在查询的时候不支持英文字母的大小写,这可怎么办呢,当时呢, 整个人都急哭了。这里给大家说明一下,Vlookup函数是不支持区分大小写查询的。如下图所示:



那么就没有更好的方法来解决这个问题了嘛,各位请继续往下看:


在Excel中支持区分大小写的函数并不多,基本的有:EXACT函数、FIND函数、SUBSTITUTE函数等。下面我们给大家以EXACT函数为例说明如何解决区分大小写的查询问题。


EXACT函数


说明:比较两个字符串是否完全相同,如果它们完全相同,则返回 TRUE,否则返回 FALSE(区分大小写)。

语法:EXACT(text1,text2)

例如:比较A1与a1是否相同,如下图所示:


解决方法:

回到前面的例子中,通过使用EXACT函数区分大小写完成查询。

在G2单元格中输入公式:

=LOOKUP(1,0/(EXACT(E2,$A$2:$A$13)),$B$2:$B$13)


这个公式是一个固定的套路,即:

=LOOKUP(1,0(EXACT(条件,条件区域)),结果区域)

在平常的反向查询或者多条件查询的时候也可以使用这个套路,即:

=OOKUP(1,0((条件1=条件区域1)*(条件2=条件区域2)……),结果区域)



以下解释仅作了解,不理解也没有关系,大家只要会上面的套路即可。


公式解释:

1EXACT(E2,$A$2:$A$13)返回的结果是一组TRUE与FALSE组成的一维区域:

{FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE},反应在单元格中为:


也可以通过公式求值的方式来查看每个单元格的运算过程如下动态图所示:


2、0/(EXACT(E2,$A$2:$A$13))相当于:

0/{FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE},这里需要说明的是逻辑值在参与公式计算的时候是数字是可以进行运算的,具体的这里为四则运算,即为:TRUE=1,FALSE=0,那么可以替换转换为:0/{0;1;0;0;0;0;0;0;0;0;0;0},然后使用0与花括号里的每个数字去除得到一组结果:{#DIV/0!;0;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!}。“0/”的目的就是把符合条件的值变为0,不符合条件的变为错误,利用LOOKUP函数的特征查找到符合条件的值。


3LOOKUP(1,0/(EXACT……)LOOKUP函数有两个特征:一是查找时可以忽略错误值且,这样一组数值忽略后只剩下一个值。二是当查找的值不存在时,按照小于此值的最大值进行匹配。故设置查找值为1,从而实现查询的目的。所以使用Lookup(1,……)进行查找的时候就能找到唯一值了。


注:还有一种方法可供参考,输入公式:

{=INDEX($B$2:$B$13,MATCH(1,--EXACT(E2,$A$2:$A$13),0))},按组合键完成即可。



来源:24财务excel,作者:小必