说到函数就不得不提起函数中最受欢迎的三大家族:求和家族、查找引用家族、逻辑家族!!!没错!今天我们要介绍的就是三大家族之一逻辑函数家族的领头人:IF函数——很多人难以理解IF函数的多级嵌套使用。其实,把多级嵌套当成剥洋葱就好了。

IF函数是一个逻辑函数。它的主要功能是根据指定的条件判断“真”“假”,进而根据真假返回相应的内容。

一、常规使用(单次单条件判断)

函数用法:




if可以嵌套吗 mysql if嵌套if函数_if可以嵌套吗 mysql


就是判断某个条件是否成立,成立返回第二参数,不成立则返回第三参数。

举个栗子:

为了避免产品的脱销,电商都需要提前备货。如下图所示,产品安全库存是30,当商品库存大于等于30时,在“库存提示”处显示“充足”,小于“30”时,显示“补货”。


if可以嵌套吗 mysql if嵌套if函数_嵌套_02


E5中输入公式:=IF($D5>=30,"充足","补货")


if可以嵌套吗 mysql if嵌套if函数_多级_03


二、多级嵌套

栗子举完了,我们来一个厉害点的嵌套操作吧!嵌套,通常指的是将IF函数的第三参数变成一个新的IF函数返回。嵌套后很像洋葱,从外往里,每层一个IF判断,最多可以有64层。


if可以嵌套吗 mysql if嵌套if函数_excel_04


多级嵌套的求解过程,与剥洋葱一致。首先剥最外一层,是不是?是,就不用剥了,不是就继续剥第2层……


if可以嵌套吗 mysql if嵌套if函数_多级_05


一层嵌套,就有一对括号,有多少层嵌套就要写多少对括号。每对括号的颜色是不同的(在编辑状态下),最外一层括号肯定是黑色的。害怕漏打括号的小伙伴可以单击编辑栏,通过查看最外边的括号是不是黑色判断括号有无漏打。


if可以嵌套吗 mysql if嵌套if函数_Powered by 金山文档_06


1.非区间嵌套

多级嵌套的各级条件都是单点判断,不是数值区间判定。

譬如:年会摸奖,摸到红色条,奖励微波炉,摸到绿色条奖励自行车,摸到蓝色条奖励数码相机。


if可以嵌套吗 mysql if嵌套if函数_多级_07


C2中输入公式:

=IF(B2="红色","微波炉",IF(B2="绿色","自行车","数码相机"))


if可以嵌套吗 mysql if嵌套if函数_Powered by 金山文档_08


2.区间嵌套

多级嵌套的各级条件属于数值区间判断。

譬如,快过年了,公司决定给不同年龄段的员工发放相应的津贴补助。


if可以嵌套吗 mysql if嵌套if函数_多级_09


D2中输入公式:

=IF($C2<10,0,IF($C2<20,100,IF($C2<30,200,IF($C2<40,300,500))))


if可以嵌套吗 mysql if嵌套if函数_excel_10


公式说明:

(1)区间判断,小伙伴们可千万别把补助标准中的“10-20岁”写成“10”,这样是得不到正确结果的哈~

(2)条件中的数字一定要按顺序排列,要么是升序排列要么是降序排列。上面例举中的公式数字就是升序排列的,我们也可以写成降序排列,只是公式稍长了一点:

=IF($C2>=40,500,IF($C2>=30,300,IF($C2>=20,200,IF($C2>=10,100,0))))

三、单次多条件判断

前面的两种,不管是常规用法还是多级嵌套,每次判断条件都是一个。但有的时候,我们的条件或许有多个。这时可以用AND或OR函数把条件组合起来进行判断。

1.多个条件是“和”关系(必须同时满足)

譬如:根据年龄和成绩判定是否是优秀青年。


if可以嵌套吗 mysql if嵌套if函数_嵌套_11


成为优秀青年有两个并列的条件:年龄小于30,成绩大于90。这个时候我们就需要使用AND函数把两个条件并列在一起。在D2中输入公式:

=IF(AND(B290),"优秀青年","")


if可以嵌套吗 mysql if嵌套if函数_多级_12


2.多个条件是“或”关系(满足任意一个)

譬如:根据销量或盈利金额判定产品是否畅销。只有销量大于1000或者盈利大于10000的产品属于畅销产品。


if可以嵌套吗 mysql if嵌套if函数_if可以嵌套吗 mysql_13


多个条件之间是或关系的,用OR函数把条件组在一起。D2中输入公式:

=IF(OR(B2>1000,C2>10000),"畅销","不畅销")


if可以嵌套吗 mysql if嵌套if函数_Powered by 金山文档_14


3.多个条件同时存在“和”和“或”关系

譬如:所有女生,以及成绩大于等于90分的男生,都有奖品“水果”,其他人没有。


if可以嵌套吗 mysql if嵌套if函数_嵌套_15


在D2中写入公式:

=IF(OR(B2="女",AND(B2="男",C2>=90)),"水果","无")


if可以嵌套吗 mysql if嵌套if函数_excel_16


四、特殊用法:返回区域

前面例举的几种用法IF函数都是返回单个值,其实IF函数也可以返回区域。只不过实际应用中当使用IF函数返回区域时,往往IF函数是其他函数的一个参数。

1.返回区域是怎么回事

首先来看看返回区域是怎么回事。

譬如,当D2等于1时,我们需要返回所有的苹果名称,否则返回所有苹果的价格。


if可以嵌套吗 mysql if嵌套if函数_if可以嵌套吗 mysql_17


同时选中E2:E4单元格(单元格数量必须与品名数量一致),然后输入公式:

=IF(D2=1,B2:B4,A2:A4)

输入完毕同时按Ctrl+ShIFt+Enter键(必须!因为返回的是数组)即可。


if可以嵌套吗 mysql if嵌套if函数_嵌套_18


在D2中输入0,返回的就是一串价格:


if可以嵌套吗 mysql if嵌套if函数_excel_19


感觉就是D2等于1,就把品名复制粘贴过来,D2等于0,就把价格复制粘贴过来。

能否把品名和价格同时返回呢?也就是把D2=1和≠1的两种结果值都返回。可以!这个时候就不用表达式了,因为成立的和不成立的都需要返回。IF的条件判定只有两个结果,要么TRUE(用数字1代表)要么FALSE(用数字0代表),现在两个结果都要,因此直接用常量数组作为IF函数的第一参数。选中E2:F4区域,输入公式:

=IF(,B2:B4,A2:A4)

输入完毕同样须要按Ctrl+ShIFt+Enter键。


if可以嵌套吗 mysql if嵌套if函数_if可以嵌套吗 mysql_20


感觉就是把品名和价格两列数据交换顺序复制粘贴在指定区域了。

2.返回区域实际运用:Vlookup反向查找

Vlookup查找有一个条件:查找值必须位于查找区域的第1列。如果查找值不在查找区域的第1列,则可以用IF函数返回区域的能力,交换查找区域数列顺序,就像我们刚才同时返回品名和价格那样。这就是Vlookup的反向查找。

譬如下面,需要根据学号查学生姓名。


if可以嵌套吗 mysql if嵌套if函数_excel_21


查找区域A:C,学号在第3列,而不是第1列。怎么办?用IF函数的常量数组交换A列和C列组成一个新的查找区域即可。在G2中输入公式:

=VLOOKUP(F2,IF(,C2:C13,A2:A13),2,0)


if可以嵌套吗 mysql if嵌套if函数_Powered by 金山文档_22