乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > IF函数详解-Excel2003教程

IF函数详解-Excel2003教程

作者:乔山办公网日期:

返回目录:excel表格制作

_Excel公式教程

转载

标签: excel公式教程 if函数分类: Excel公式教程-函数篇

IF函数如何进行多条件判断?在Excel2003版IF函数如何突破7层嵌套的限制?

语法IF(logical_test,value_if_true,[value_if_false])

执行条件判断。条件值logical_test如果为TRUE,则返回第二个参数value_if_true;如果为FALSE,则返回第三个参数value_if_false。

一、参数logical_test如果不是逻辑值,或者不能转换为逻辑值,函数返回错误值#VALUE!。

二、参数Value_if_true和value_if_false可以是任何类型的数值。

Value_if_true不能省略,但可以是空参数。如果条件值logical_test为TRUE时返回0,可简写为空参数。例如:

=IF(A2>B2,,B2-A2) 当A2大于B2时,返回0。该公式确保了B2-A2不返回负数。

Value_if_false既可以省略,也可以是空参数,但要注意这两种情况代表不同的返回值。当条件值logical_test为FALSE时,如果省略value_if_false,则返回FALSE;如果value_if_false为空参数,则返回0。例如:

=IF(A2>B2,A2-B2) 省略了value_if_false。当A2小于等于B2时,返回FALSE

=IF(A2>B2,A2-B2,) Value_if_false为空参数。当A2小于等于B2时,返回0

用法

一、构建用于判断的条件。

1、参数logical_test可以是一个由比较运算表达式返回的逻辑值。例如:

=IF(A1>=60,"合格","不合格")

2、参数logical_test可以是一个由IS类函数、ISEVEN、ISODD函数返回的逻辑值。

例如,以下公式从单元格A1的18位身份证号码中判断性别:

=IF(ISODD(MID(A1,17,1)),"男","女")

3、参数logical_test可以是一个数字值,根据数值类型自动转换的规律,非0的数字值被转换为逻辑值TRUE;数字值0被转换为逻辑值FALSE。

例如,以下公式先用IF判断除数部分是不是零,以免出现错误值#DIV/0!:

=IF(B1-C1,A1/(B1-C1),)

4、参数logical_test可以是一个由逻辑运算函数AND、OR、NOT返回的逻辑值。例如:

=IF(AND(A1>=80,A1<90),"优良","")

结合多个逻辑运算函数,可以构建极其复杂的判断条件。

5、参数logical_test还可以嵌套另一个IF函数,可用于多条件双结果判断。

假设单元格A1为性别,单元格B1为年龄,以下公式判断是否达到退休年龄(假设男性60岁、女性55岁退休):

=IF(B1>=IF(A1="男",60,55),"退休","在职")

二、多条件多结果判断。

对于需要判断多个条件,对应返回多个结果的,可以在参数value_if_true或value_if_false中多层嵌套IF函数,也可以把IF函数并排,然后用&或+运算符连接起来。

假设判断单元格A1的值(为1至6的整数),对应返回字母“A”到“F”。

1、以下公式使用了IF函数多层嵌套的方法:

=IF(A1=1,"A",IF(A1=2,"B",IF(A1=3,"C",IF(A1=4,"D",IF(A1=5,"E","F")))))

如果要考虑单元格A1为空的情况,可在最外层再套一个IF函数,先判断A1是不是0:

=IF(A1,IF(A1=1,"A",IF(A1=2,"B",IF(A1=3,"C",IF(A1=4,"D",IF(A1=5,"E","F"))))),"")

2、以下公式使用二分法IF函数多层嵌套的方法,可以减少IF函数的判断次数:

=IF(A1<4,IF(A1<2,IF(A1,"A",""),IF(A1<3,"B","C")),IF(A1<6,IF(A1<5,"D","E"),IF(A1<7,"F","")))

如果要判断的条件太多,IF函数多层嵌套有以下弊端:

(1)不利于公式的维护和分析,如果要在中间删除和增加一个条件,将会比较麻烦。

(2)Excel2003版函数嵌套不能超过7层,如果要嵌套过多的条件,只能另外想办法。

3、以下公式使用IF函数并排串连的方法:

=IF(A1=1,"A",)&IF(A1=2,"B",)&IF(A1=3,"C",)&IF(A1=4,"D",)&IF(A1=5,"E",)&IF(A1=6,"F",) 或

=IF(A1=1,"A",IF(A1=2,"B",IF(A1=3,"C",)))&IF(A1=4,"D",IF(A1=5,"E",IF(A1=6,"F",)))

返回值如果是文本值,用文本运算符“&”串连;如果是数字值,用加号“+”串连。

如果单元格A1的值为字母“A”到“F”(不分大小写),对应返回数字1至6,可以使用以下公式:

=IF(A1="A",1,)+IF(A1="B",2,)+IF(A1="C",3,)+IF(A1="D",4,)+IF(A1="E",5,)+IF(A1="F",6,) 或

=IF(A1="A",1,IF(A1="B",2,IF(A1="C",3,)))+IF(A1="D",4,IF(A1="E",5,IF(A1="F",6,))) 或

=(A1="A")*1+(A1="B")*2+(A1="C")*3+(A1="D")*4+(A1="E")*5+(A1="F")*6

与IF函数多层嵌套对比,IF函数并排串连有以下优点:

(1)公式维护简单,分析容易,在中间删除和增加一个条件是很便捷的事。

(2)不受嵌套层数影响。

但是,如果判断的条件需要比较费时的运算(比如使用数组查找函数、求和函数等),则使用IF函数并排串连方法计算速度可能会慢,因为公式中每一个IF函数都要计算一遍,而IF函数多层嵌套往往无需进行所有的条件计算就能返回结果。

三、把返回值中相同的部分移到IF函数外面,以简化公式。

例如以下公式:

=IF(A1>50,B1*2,B1*1.5)

结果都是用B1乘以不同的比值,应该把“B1*”部分移到IF函数外面,公式简化为:

=B1*IF(A1>50,2,1.5)

而以下公式:

=IF(A1>50,B1*20%,B1*15%)

可以简化为:

=B1*IF(A1>50,20,15)%

相关阅读

  • IF函数详解-Excel2003教程

  • 乔山办公网excel表格制作
  • Excel2003教程,条件值logical_test如果为TRUE,则返回第二个参数value_if_true。一、参数logical_test如果不是逻辑值,或者不能转换为逻辑值,函数返回错误值#VALUE!
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网