首页 > 化工知识 > =IF("a"="A","对","错"),返回对还是错?又有什么作用?

=IF("a"="A","对","错"),返回对还是错?又有什么作用?

时间:2021-12-04 来源: 浏览:

=IF("a"="A","对","错"),返回对还是错?又有什么作用?

原创 EH看见星光 Excel星球
Excel星球

AhaExcel

建议常用Excel的职场人关注,海量教程随学随用,随用随查。 主创:看见星光,微软全球最有价值专家、Excel图书作者、培训师。 内容:每日四文,一篇函数教程、一篇VBA教程、一个短视频小技巧、一篇杂文。

收录于话题 #excel 35个 内容
每天一篇Excel技术图文
微信公众号:Excel星球
NO.691-对与错都要说说

作者:看见星光
 微博:EXCELers / 知识星球:Excel

HI,大家好,我是星光。

很久以前在微博做了个投票练习题:

公式: =IF("a"="A","对","错") ,返回结果是啥子?

很多朋友第一反应是错。

这可以理解,a是小写字母,A是大写字母。长幼有序、大小有别,怎么可能一样嘛……

然而这题正确结果是 ,毕竟众生平等、有教无类……咳咳, 在等号判断中,小写字母和大写字母其实是相等的。

打个响指, 那么 知道这个知识点有什么用呢?

我举个例子。

从下图所示的数据表中,查询 a同学 的考试成绩。

有朋友说,可以用VLOOKUP。
然而VLOOKUP并不区分字母大小写▼ 
a同学考了99分,愣是被VLOOKUP霍霍成了59分。

还有朋友说,既然VLOOKUP不行,那咱们换INDEX+MATCH吧?这想法就给MATCH函数可以区分字母大小写似的,但它其实也不区分▼

事实上,在Excel中, 绝大部分查询与统计类函数都是不区分字母大小写的

那又有哪些函数区分字母大小写呢?

……你等会,我数数。

常见的有UNICODE、CODE、EXACT、FIND和SUBSTITUTE(没错,这俩浓眉大眼的家伙都区分字母大小写)……

1,
区分大小写的数据查询
如果需要区分大小写的精确数据查询,可以使用以下函数公式:

=LOOKUP( 1 , 0 /(EXACT(A2:A3, "a同学" )), B2 :B3)

EXACT可以检测两个数据是否完全相同,它会区分字母大小写,相同则返回TRUE,不同则返回FALSE。

但我们不能够使用以下函数公式:

=LOOKUP( 1 , 0 /(A2:A3= "a同学" ), B2 :B3)

原因你已经知道了,等号这家伙并不区分字母大小写。

聊到这,你不妨再猜猜这个公式返回啥?

= 1 = "1"
<iframe allowfullscreen="" class="vote_iframe js_editor_vote_card" data-display-src="/cgi-bin/readtemplate?t=vote/vote-new_tmpl&__biz=MzI0MTAxNTc5NA==&supervoteid=466377930&token=1496962375&lang=zh_CN" data-display-style="height: 199px;" src="http://www.cnmhg.com/e/admin/showimg.php?url=/mp/newappmsgvote?action=show&__biz=MzI0MTAxNTc5NA==&supervoteid=466377930#wechat_redirect" data-supervoteid="466377930" frameborder="0" scrolling="no"></iframe>
……
这是精确查询,如果需要区分字母大小写同时 模糊匹配 的数据查询,又该怎么处理呢?

可以使用FIND函数。

比如,查询A列人名中包含小写字母"a"的对应成绩,公式如下▼

=LOOKUP( 1 , 0 /(FIND( "a" , A2 :A3)), B2 :B3)

FIND函数区分字母大小写——知道这个消息的朋友未必会开心,毕竟大部分时候咱们真不需要它区分大小写……

如果不需要区分字母大小写,可以使用SEARCH函数。它和FIND函数的作用类似,但不区分字母大小写,同时还支持使用通配符。

不区分字母大小写的模糊匹配函数公式...▼

=LOOKUP( 1 , 0 /(SEARCH( "a" , A2 :A3)), B2 :B3)

2,
SUBSITUTE函数问题
前面说过,SUBSTITUTE函数也是区分字母大小写的。

=SUBSTITUTE( "A同学" , "a" , "" )

上面这个公式返回结果还是A同学,里面的大A并没有被小a替换掉。

但很多时候,我们真的不需要SUBSTITUTE区分字母大小写,就希望不管是大A还是小a都被a替换掉……

那就学两个新函数吧。

UPPER函数,可以将小写字母转大写。

=UPPER( "love you" ) 结果LOVE YOU

LOWER函数可以将大写字母转小写。

=LOWER( "LOVE YOU" ) 结果love you

还有个PROPER函数,顺带看一眼,它可以只将参数的首字母转大写。

=PROPER( "love you" ) 返回结果Love you

因此如果我们需要SUBSTITUTE函数不区分字母大小写,可以使用以下函数套路:

=SUBSTITUTE(LOWER(A2), "a" , "" )

或者:

=SUBSTITUTE(UPPER(A2), "A" , "" )

先将数据源的字母统一转换为大写或小写,再执行替换操作。

……

当然了,如果你认为这破坏了数据源字母的大小写形式,还可以分两次替换。管它黑猫还是白猫,弱者才做选择,强者啥都要,正所谓弱则搁置争议强则自古以来,咱们可以黑猫白猫一起上▼

=SUBSTITUTE(SUBSTITUTE(A2, "A" , "" ), "a" , "" )

……
没了,今天和大家分享的内容就这样,有啥问题可以在VIP会员群中提问交流。左上角点关注,右下角点个赞,挥挥手,咱们下期再见。

加入我的Excel会员, 全面学习Excel
透视表 函数 图表 VBA PQ想学啥学啥

“阅读原文” , 系统升级表格技能!

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐