excel if函数多重选择嵌套 EXCEL 多重嵌套IF函数

作者&投稿:佟丹 (若有异议请与网页底部的电邮联系)

方法:

  1. IF 函数是根据对指定的条件计算结果为 TRUE 或 FALSE,返回不同的结果,语法 IF(logical_test,value_if_true,value_if_false)

  2. 也就是 IF(条件判断是真或是假,条件为真时的值,条件为假时的值),下面来通过一个例子说明。

  3. 如图:通过判断在途货量的数量,来决定是否向工厂要货,这里只有2种可能,即要货,或不要货,就可以通过IF函数来设置。

  4. =IF(C2>10,"不要货","要货") ,公式判断C列各单元格内的数值是否大于10,如果大于10则显示 不要货,如果不大于10则 显示 要货 。

  5. 注意这里用到的引号,逗号均应在英文状态下输入,如果是在中文状态下输入,则会导致公式错误。


  6. 再来看这个例子,如上图:与第一个例子不同的是在要货的情况下,如果前次要的货量比较少,如少于5台,则显示紧急要货,需要工厂紧急发货,在这种情况下,这个表格就出现三种可能性即:不要货,要货,紧急要货,如果单纯使用IF函数是不能达到这种判断的,幸好IF函数可以嵌套从而解决了这一问题。


  7.  这里用的公式=IF(C2>10,"不要货",IF(C2<5,"紧急要货","要货"))

  8. 解析:公式先对第一个条件进行判断,C2>10,如果大于10则显示第一个逗号后面的 不要货 如果不大于10则 进行下一个IF函数的判断

  9. 在进行第二个条件判断时,它的前提是C2<=10,也就是小于或等于10 ,在这一前提下先判断是否小于5,如真显示紧急要货,在 5<=C2<=10 的情况下才会显示 要货。


  10. 再来看更深层次的嵌套,如上图,共4层嵌套,实际上EXCEL可实现最多64层的嵌套,而现实中我们很少会用到这么多,因为这极易产生麻烦,而且要实际这一功能完全有其它的办法可以达到,如LOOKUP 公式等。

  11. 下面再来说一下IF函数与其它函数的配合使用的高级用法。


  12. 在这里使用的公式:=IF(B2<AVERAGE(B$2:B$8),"补考","过") ,将AVERAGE函数 求平均值 与IF 函数套用,当然除此之外,IF 函数还可以与其它许多函数套用,大家可以自行尝试一下。

    备注:在做条件判断是可以有大于,大于等于,小于,小于等于,等于 ,用符合表示分别为:>,  >=  ,  <   ,    <=   , =



=IF(A1="硕士生",IF(B1>15,IF(B1>24,(B1-24)*2+15*8+9*4,15*8+(B1-15)*4),8*B1),IF(B1>15,(B1-15)*10+510,IF(B1>9,(B1-9)*20+390,IF(B1>6,(B1-6)*30+300,B1*50))))

假设A列为学位,B列为人数
C1输入公式
=IF(A1="硕士生",IF(B1<=15,B1*8,IF(B1<=24,(B1-15)*4+15*8,(B1-24)*2+15*8+9*4)),IF(A1="博士生",IF(B1<=6,B1*50,IF(B1<=9,(B1-6)*30+6*50,IF(B1<15,(B1-9)*20+6*50+3*30,(B1-15)*10+6*50+3*30+6*20))),0))
C1公式向下复制

A
B
C
1
学位
人数
工作量
2
硕士生
给定条件
公式(如下)
a、如果A2=硕士生
=IF(A2="硕士生",IF(B2<=15,B2*8,IF(B2<=24,15*8+(B2-15)*4,IF(B2>24,15*8+(B2-24)*2))))
b、如果A2=博士生
=IF(A2="硕士生",IF(B2<=6,B2*50,IF(B2<=9,6*50+(B2-6)*30,IF(B2<=15,6*50+(B2-6)*20,IF(b2>15,6*50+(B2-6)*10)))))
以上公式是分解,如果把两个公式合并一块,则需要变通,因为IF的嵌套最多为七层,可以按定义名称的方式来实现公式的合并
1、把鼠标放在C2单元格,点击菜单的插入-名称-定义,弹出定义名称对话框
2、在当前工作薄中的名称下输入名称“硕士工作量”
3、在引用位置下输入引用地址=IF(B2<=15,B2*8,IF(B2<=24,15*8+(B2-15)*4,IF(B2>24,15*8+(B2-24)*2))),点击确定
4、重复2、3两项
5、在C2单元格中输入公式:=IF(A2="硕士生",硕士工作量,IF(A2="博士生",博士工作量))

A1为学位,B1为人数,C1为结果:
C2输入公式
=IF(A2="硕士生",IF(and(B2>0,B2<=15),B2*8,IF(and(B2>15,B2<=24),(B2-15)*4+15*8,(B2-24)*2+15*8+9*4)),IF(A2="博士生",IF(and(B2>0,B1<=6),B2*50,IF(and(B2>6,B1<=9),(B2-6)*30+6*50,IF(and(B2>9,B1<15),(B2-9)*20+6*50+3*30,(B2-15)*10+6*50+3*30+6*20))),0))
前面有些人为什么会错误是这样的,IF在进行计算时以先来先计算原则进行计算,例如一个数为20,它既是>=9,也是>=15,如果先写>=9,再写>=15,那么就计算为>=9;如果先写>=15,再写>=9,那么就计算为>=15,不知你们看的明白不,这点很重要,很多时候一不小心就犯这样的错误,要么就用and语句限死

关于EXCEL中if 函数多重嵌套的问题~

=IF(D5<25,"不及格",IF(D5<=29),"及格",IF(D5<=39,"中",IF(D5<=59,"良","优"))))
或者:
=IF(D5>=60,"优秀",IF(D5>=40,"良",IF(D5>=30,"中",IF(D5>=25,"及格","不及格"))))

=A2-(INT(A2/100)+1)*10
这样就可以了