今天我们来解决一个Excel查找函数的通病:就是不能识别字母的大小写无论是vlookup还是index match这样的老牌查找函数,还是xlookup这个新晋的查找函数之王,都是不能识别字母的大小写的,如下图所示,分别使用它们进行数据查询,得到的都是一个错误的结果,查找值是【Aa-39】得到的结果却是【AA-39】的结果,今天我们就来解决下这个问题。
一、FIND函数其实不仅仅是查找函数,我们经常使用的sumif,countif等函数也是无法识别字母的大小写的。那么对于这样的问题,应该如何解决呢?我们需要借助FIND函数,因为FIND函数是可以识别到字母的大小写的。先来简单地了解下这个函数
Find函数:查找字符在字符串中的位置
语法:=FIND(find_text, within_text, [start_num])
第一参数:需要查找的字符串
第二参数:在哪里查找
第三参数:指定从第几位开始查找,一般将其忽略掉即可
来简单的举个例子,了解下它是使用方法,如下图所示,我们在字符串中查找【A】与【a】的位置
大写A结果为3,就表示它的字符串的第3个位置
小写a结果为7,就表示它的字符串的第7个位置
二、LOOKUP FIND在这里更建议大家使用LOOKUP FIND函数来解决查找函数不能识别大小写的问题,因为这个方法我觉得是比较简单的。只需要将函数设置为:=LOOKUP(1,FIND(E2,A2:A7),B2:B7)
跟大家简单地介绍下函数的原理
第一参数:1,查找值
第二参数:FIND(E2,A2:A7),find函数构建的查找区域
第三参数:B2:B7,返回结果的区域
在这里FIND函数的结果如上图所示,找不到数据就会返回#VALUE!这个错误值,能找到数据就会返回1这个结果,这也是我们将LOOKUP函数设置为1的原因。这样的话就会根据1来返回对应的单元格,也正好是我们需要的结果
三、继续优化其实上一个公式,它查找的仅仅是以查找值开头的数据,如果表格中存在2个以查找值开头的数据,那么我还是可能返回错误的结果的,如下图所示,我们要查找【Aa-39】对应的结果,而函数却返回了【Aa-39WW】对应的结果,那么对于这样的问题,应该如何解决呢?
我们可以在前面加一个条件,来计算下它们的字符数是否相等,如果字符数相等则返回FIND函数,如果字符数不相等则返回#N/A这个错误值,这样的话公式就变为了
=LOOKUP(1,IF(LEN(D2)=LEN(A2:A7),FIND(D2,A2:A7),NA()),B2:B7)
效果如下图所示,是可以找到正确的结果的,相较于上一个函数,在这里多了一步,就是利用IF函数判断二者的字符数是否相等。
以上就是今天分享的全部内容,可以说分享了2种解决方法,至于如何选择,需要你自己根据实际的数据来决定了,当然了,第二个更加的精确。
我是Excel从零到一,关注我,持续分享更多Excel技巧
想要学习Excel,这里↓↓↓