加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【Excel函数】三个区分字母大小写的数据查询套路

(2016-07-05 22:25:39)
标签:

杂谈

作者:@EXCELERS

人总是活在各种证明中,不管你愿不愿意,有意识还是无意识。

比如说,你要证明你热爱眼下的这份工作,证明你有能力做好某件事,证明你打心眼里不是坏人,证明你真的不怯弱,证明你确实忘记给那谁买那什么节礼物了,证明你……真的就是你……

所以人活着真心累。所以——我们今天也来做一个证明题吧……

请用Excel函数证明A不等于a

http://ww1/large/005IRek6gw1f5iymaobn1g305003974l.gif


有朋友会说,这简单啊。星光你难得出了个简单题,秒杀!

=IF("A"<>"a","A就不等于a啊!","服不服啊?")

如果你是这么解答的,请看我眼神。

同志!走路请低头,小心有坑啊~

http://ww4/large/005IRek6gw1f5iymiq88uj302s030q2r.jpg

在Excel的工作表中,判断符是不区分大小写,它会认为A等于a,也就是说A<>a的结果是False。

那么为什么说在【工作表】中,而不是在Excel中呢?因为在Excel的VBA中,A确实就不等于a。A<>a会返回True。

这就好比你在老家被人喊毛娃子,在城里被称为先生——嗯,位置是相对的。

回到正题,直接用判断符判断A和a的相等问题是不行的。

那么怎么证明A不等于a?



有朋友会踩着掉进坑里童鞋的肩膀大声说,用EXACT函数。

=EXACT("A","a")

EXACT是精确的意思,精确判断两个值是否一样,它区分字母大小写,这个公式的结果为FALSE,它可以证明A不等于a。

想起EXACT函数的您必定眉清目秀思路敏捷手掌白皙身材高挑……

有没有其它的函数来证明呢?



打个响指,没错儿。还可以用FIND函数。

=FIND("A","a")

FIND是发现的意思,发现一个字符在另一个字符中是否存在,如果存在则返回位置号,如果不存在则返回错误值#VALUE!。它也同样区分字母大小写,这里公式的结果为#VALUE!,说明在A里找不到a,也可以说明A不等于a。

与FIND相对的是SEARCH函数。它也是搜查一个字符在另一个字符中是否存在,和FIND不同的是,它不区分字母大小写。比如SEARCH("A","a")的结果为1。

想起FIND函数的你必定眼若星辰唇若点樱国色天香帅霸天下……

还有米有其它的函数呢?



CODE函数吗?

好吧,CODE函数也算一个。

=CODE("A")<>CODE("a")

CODE函数是返回文本字符串的第一个字符在本机所用字符集中的数字代码。通常CODE("A")的结果是65,CODE("a")的结果是97,也可以证明A不等于a。

但如果用CODE函数证明AbcD不等于AcCD那就费周折了。

为什么呢?

请看上文字体标注红色的部分。

想起CODE函数的你必定……必定……容我翻翻黄皮书本,稍后再来夸你。

还有米有其它的函数呢?



这时候可不要忘记——SUBSTITUTE函数。

是的,SUBSTITUTE函数也区分大小写,这个一定要知道了。

=SUBSTITUTE("A","a",)<>""

用SUBSTITUTE函数把A中的a给替换为空白,如果它认为A等于a,那么A就会被替换掉,SUBSTITUTE的结果为空白,但实际上公式的结果是False,这就说明SUBSTITUTE也认为A不等于a。

想起SUBSTITUTE的你必定……必定……算了,我把黄皮书送你吧,你自己看,我大方,暂时不用还,月租5元。

那么还有米有其它函数可以证明A不等于a呢?

请在留言区留下你的想法吧。



现在,我们知道Excel至少有四个函数是区分字母大小写的,分别是EXACT、FIND、CODE、SUBSTITUTE我们也顺便了解了下它们的一些有趣的小细节。

然后问题来了,了解这些有什么用?

当然是有用的,打个响指,举个栗子,比如说区分大小写的数据查询。

http://ww4/large/005IRek6gw1f5iyodvqnqj309o0asdg0.jpg

如下图是某公司的一份数据表,需要根据型号查询相关价格,但型号是有区分大小写的。比如说查找型号HJT-a01-84645的价格,就不能把HJT-A01-84645的拿来充数。

http://ww3/large/005IRek6gw1f5iyol4sy3j30f107zjte.jpg

我们刚刚学的那四个函数就排上用场了不是?

解法①:

=LOOKUP(1,0/EXACT(A2:A9,E1),B2:B9)

一个经典的LOOKUP查询套路:=LOOKUP(1,0/查询条件,结果区域)。

EXACT(A2:A9,E1)是查询条件,判断A2:A9的型号是否绝对和E1一致。

解法②:

=INDEX(B:B,MATCH("",SUBSTITUTE(A1:A9,E1,),))

又一个经典的查询套路,INDEX MATCH。

SUBSTITUTE(A1:A9,E1,),如果A1:A9的值等于E1,会被替换为””。

MATCH函数采用精确匹配的方式,查询到””的位置,以此作为INDEX函数的索引号进行取值。

需要说明的是,这是一个数组公式,需要按CTRL SHIFT ENTER三键结束公式输入。

解法3:

=LOOKUP(1,0/FIND(A2:A9&"@",E1&"@"),B2:B9)

还是LOOKUP的查询套路,需要思考的是,为什么增加了一个符号”@”


今天和大家分享的内容就酱紫,更多解法,等你来分享,握手,明见了。@Excelers

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有