上海下了40多天雨,终于出太阳了。
今天总结一下IF函数的的结构和用法。
首先看一下IF函数的构成:
IF函数的构成
IF函数有三个参数:
逻辑表达式:可以是一个简单的关系判断,也可以引用其他函数。
正确的情况:当表达式正确的情况下,返回的值。
错误的情况:当表达式错误的情况下,返回的值。
下面是一个简单的小例子:
小例子
我们在"D2"单元格建立一个if判断,判断"B2"单元格的值是否等于"5"。
首先执行第一个参数,即逻辑表达式“(B2=5)”,判断"B5"单元格的值。如果表达式正确,即B2=5,则返回第二个参数“是”;如果表达式错误,即B2!=5,则返回第三个参数“否”。
用VBA描述一下,可能逻辑会清晰一些:
IF判断
蓝色框框中的代码,即是前面例子中的逻辑表达式,当表达式符合条件,就执行黄色框中的代码;如果表达式不符合条件,那么进入“ELSE”,执行绿色框中的代码。
这里需要注意的是,要区分表达式的值的数据类型,5可以是数字5,也可以加上“ ”变成字符“5”,前面例子中用的是“=”关系,也可以用“>”或者“<”等关系,数字可以进行大小判断,而字符是不存在大小的。
第二三个参数都是返回汉字,这是属于字符型的值,所以要加上引号“ ”。一些数据库语言中,引号表示字符类型时,可以用单引号‘ ’和双引号,但是Excel和VBA中只能用双引号“ ”。
!= 表示不等于的意思,一般用于各类编程语言中,在Excel中不等于用“ <> "代替。
Beautiful!现在我们已经掌握简单的IF函数了,接下来我们要开始对IF函数进行多条件判断。
先看这个问题:
双条件
现在要对B2和B3同时进行判断,并返回在D2。如果同时满足2个条件,“B2 = 5” 且 “B3 = 8” ,即在D2返回“是”,否则返回“否”。解决方法当然有很多,仁者见仁智者见智了。不过较为常见的解决方法有2种:
AND ( ) 函数连接2个条件
AND函数
AND ( ) 函数可以同时连接多个条件,同时对这些条件进行判断。
AND连接2个条件,同时判断IF嵌套子IF判断
嵌套是很常见的一种形式,可以实现先执行一个IF,再执行另一个IF。
子嵌套这种方法其实是用另一个IF函数的整体作为上一级IF函数的第二个参数。第一级(父级)IF函数是在判断 “B2=5”, 如果符合条件,那么进入子IF函数对 “B3=8” 再进行判断;如果不符合条件,则返回“否”。子IF函数中,符合条件即表示 “B2=5”和“B3=8”同时符合。
同样,用VBA解释一遍:
此外,上面说的是同时发生(“且”),如果是发生任意一个(“或”),也可以用“OR函数”或者嵌套。
Okay,到目前为止,我们已经可以利用以上这些技能去处理一些复杂一点的工作了,看一下这个小例子吧。
现在假设你是一家滑雪俱乐部的客户管理员,某一次滑雪活动前,考虑到滑雪是有一定危险的活动,需要对报名的客户进行甄别。现在假设只考虑性别和年龄:
滑雪俱乐部目前有8名客户报名参加这次滑雪项目,经过对他们的性别和年龄进行统计,得出下面的那张表,姓名不重要,代号而已,用1234代替。现在要判断是否符合标准,标准在上面那张表:只要“男性”和“女性”,男性年龄为“25~35”周岁,女性为“20~30”周岁。(这只是一个虚拟的例子,非“男性”非“女性”表示资料缺失)
这里我用“嵌套+AND函数”的做法:
嵌套+AND函数
。。。看到这个我真的想把电脑砸了,如果再复杂一点,建议大家用VBA或者其他工具计算,用过数据库的同学应该知道,优化的时候一个原则是能用连接就尽量不用嵌套,因为嵌套是运行速度最慢的一种做法。VBA和数据库以后再讨论吧,这里先理解EXCEL的IF函数。
其实无论嵌套多少,最根本就是这篇文章最开始提到的公式,我们回顾一下:
回顾一下IF公式这个案例中,父级和嵌套的三个子级都符合这个结构。我们按照顺序,流程走起来!
首先看圈1,这是最高级的IF函数,其判断的条件是“C7=“男””,如果符合,进入圈2;如果不符合,进入圈3。
性别为男,进入圈2,之后就是要考虑年龄问题了,所以圈2的判断条件是“AND(D7>=25, D7<=35)”,即年龄是否在25~35(包含)周岁的区间内,这里的区间是两个条件“大于等于25”,“小于等于35”,用前面讲过的AND函数连接。如果年龄在这个区间内,那么恭喜了,符合条件;如果不在,那么就不符合了。
性别不为男,进入圈3,这里再次判断性别,是否性别为“女”。如果是“女”,那进入圈4;如果不是“女”,可能是资料缺失,那么直接“不符合”。
最后看看圈4,和圈2同理,只是这次判断的是女性的年龄区间。
好啦,最后的最后,我们再来用VBA演示一遍,作为一个参考。
VBAVBA的逻辑性会更严谨一些,如果看不明白没关系的,慢慢来,后面我会分享sql server和python等。
好天气不要错过,出去晒晒阳光。
谢谢!
网友评论