热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

freemakerif多个条件_IF函数详解,教你马上学会它!

IF函数似乎是每个使用Excel的人都必须掌握的函数了,如果连IF函数都不会,真的不好意思说自己会用Excel呢。不过从平时来看,关于IF

IF函数似乎是每个使用Excel的人都必须掌握的函数了,如果连IF函数都不会,真的不好意思说自己会用Excel呢。

不过从平时来看,关于IF函数的用法,确实还存在着一些小问题,今天就再来说说IF函数的本质和多个IF嵌套时需要注意的问题吧。

IF函数的本质

在实际使用中,往往需要根据某个判断或者比较得到不同结果,例如:当成绩大于或等于60分时,结果为及格,当成绩小于60分时,结果为不及格。通过比较运算或者判断可以得到一个逻辑值,IF函数的功能就是根据逻辑值来得到不同的结果。

IF函数需要三个参数,完整的格式为:

=IF(要判断的条件,条件成立时显示的内容,条件不成立时显示的内容)。

第一参数可以是逻辑值或者是数字,当数字为0时,视为FALSE,当数字非零时,视作TRUE;

第二个和第三个参数可以是任意内容,常量或者公式,当第一个参数为TRUE时,IF得到第二个参数的内容,否则得到第三个参数的内容,如图所示。

74a6da69e2637b271d926175ccd0706b.png

IF函数就好像一个假设句,满足某个条件就这样,否则就那样。

例如成绩大于或等于60分为及格,小于60为不及格,这句话我们换成假设句就是:如果成绩大于60,及格,否则不及格。

将这个假设句代入IF函数就是:

IF(成绩大于或等于60,及格,不及格)

假如成绩在A2单元格,公式为:

=IF(A2>=60,"及格","不及格"),如图所示。

a8215df7747ea2df6400df3239add9b8.png

IF函数的本质是按照第一参数设置的条件对数据进行分类。

例如想得到两种结果&#xff0c;及格或不及格&#xff0c;就需要把数据分成两部分&#xff0c;条件可以是A2>&#61;60&#xff0c;也可以是A2<60。

条件不相同时&#xff0c;公式也要做对应的调整&#xff0c;上图中的公式也可以写成&#xff1a;&#61;IF(A2<60,"不及格","及格")&#xff0c;如下图所示。

bff282bce3049b8eb562a2bb0a3c36ad.png

当条件涉及数字的比较时&#xff0c;临界值一定要特别注意&#xff0c;例如&#xff1a;成绩大于60及格&#xff0c;小于60不及格&#xff0c;这样分类就有问题&#xff0c;60分的算及格还是不及格&#xff1f;

两个IF如何嵌套

通常使用一个IF函数可以根据条件得到两种结果&#xff0c;如果需要得到三种结果&#xff0c;例如&#xff1a;成绩大于或等于85为优秀&#xff0c;小于85大于或等于60为合格&#xff0c;小于60为不合格&#xff0c;就需要使用两个IF函数来实现。

对于新手来说&#xff0c;嵌套使用两个IF时经常出错&#xff0c;以下介绍一个能有效避免出错的方法。

还是以三种结果为例&#xff0c;首先简化为两种情况&#xff0c;判断是否及格&#xff0c;优秀也看作是及格&#xff0c;公式为&#xff1a;

&#61;IF(A2>&#61;60,"及格","不及格")

然后再去判断是否为优秀&#xff0c;公式为&#xff1a;

IF(A2>&#61;85,"优秀","及格")

将后面这个IF替换第一个IF的第二参数&#xff0c;完成后的公式为&#xff1a;

&#61;IF(A2>&#61;60,IF(A2>&#61;85,"优秀","及格"),"不及格")

验证这个公式的结果正确&#xff0c;如图所示。

b2ee50ab54d03bed9ccea8d8a33ddd34.png

公式&#61;IF(A2<60,"不及格",IF(A2<85,"及格","优秀"))

与公式&#61;IF(A2<60,"不及格",if(a2>&#61;85,"优秀","及格"))都可以达到同样的结果&#xff0c;但后面一个公式看上去总是感觉有点别扭&#xff0c;因为使用了不同的比较运算符&#xff0c;同时返回的三种结果不是按顺序排列的。

在使用多个IF进行嵌套时&#xff0c;尽量使用相同的比较方式&#xff0c;结果也按照升序或者降序排列是一种很好的习惯。

公式&#61;IF(A2>&#61;60,"及格",IF(A2>&#61;85,"优秀","不及格"))表面看上去没什么问题&#xff0c;但是结果总是无法得到“优秀”&#xff0c;如图所示。

ff319487ef0dc3bb118047eec58d7bc9.png

这种错误是使用IF嵌套时很容易发生的&#xff0c;原因在于当条件是A2>&#61;60的时候&#xff0c;数据被分成两组&#xff0c;大于或等于60的都是第二参数&#xff0c;小于60的都是第三参数。在这个公式中&#xff0c;第三参数才去判断是否大于或等于90&#xff0c;显然不会有满足条件的结果&#xff0c;所以不可能出现优秀。

这是常犯的一种逻辑顺序错误&#xff0c;可以遵循规律避免错误&#xff1a;用大于号时条件降序&#xff0c;用小于号时条件升序。意思是使用“>”或“>&#61;”比较时&#xff0c;条件按85→60递减的顺序&#xff1b;使用“

提示&#xff1a;使用多层IF嵌套时&#xff0c;要求有非常清晰的逻辑&#xff0c;此时往往需要转换思路&#xff0c;用其他函数取代多个IF嵌套的公式。



推荐阅读
author-avatar
100斤的重口味_866
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有