excel IF函数多重判断

excel IF函数多重判断应该怎么写?就是=IF(.............)里面的东西,我搞不懂里面的编程准则。最好能举个例子来说明,不要拿excel帮助里面的东西复制过来。我刚学EXCEL,自学的,谢谢

IF用法:IF(A,B,C)表示如果A的式子成立,那么该格子里面显示B,如果A的式子不成立,那么该格子里面显示C
IF()使用时,可以嵌套,就是说,IF(A,B,C)里面的B项和C项可以用另外一个IF(A,B,C)代替,即IF(IF()),这个时候,先判断最外面的一个IF的式子是否成立,然后判断中间的式子。
但是嵌套的时候,要注意到底后面的IF要嵌入B项里面,还是C项里面。

例:某同学语文65,数学80,英语55,政治75,问怎么计算这位同学是否需要补考?
设语文为A列,数学为B列,英语为C列,政治为D列
设该同学成绩所在行为第10行

可以写出这样子的语句
=IF(A10<60,"语文需要补考",IF(B10<60,"数学需要补考",IF(C10<60,"英语需要补考",IF(D10<60,"政治需要补考","恭喜你,你不用补考"))))

这样写,程序首先判断语文,然后数学,然后英语,然后政治。
但是这样的坏处就是,语文如果不合格,显示要补考,但是不判断剩下的科目

如果说要所有科目都判断出来,那么,就要灵活的套用IF()了
这样子,语句就要写成下面的样子

=IF(A10<60,IF(B10<60,IF(C10<60,IF(D10<60,"你需要补考的科目是:语文、数学、英语、政治","你需要补考的科目是:语文、数学、英语"),IF(D10<60,"你需要补考的科目是:语文、数学、政治","你需要补考的科目是:语文、数学")),IF(C10<60,IF(D10<60,"你需要补考的科目是:语文、英语、政治","你需要补考的科目是:语文、英语"),IF(D10<60,"你需要补考的科目是:语文、政治","你需要补考的科目是:语文"))),IF(B10<60,IF(C10<60,IF(D10<60,"你需要补考的科目是:数学、英语、政治","你需要补考的科目是:数学、英语"),IF(D10<60,"你需要补考的科目是:数学、政治","你需要补考的科目是:数学")),IF(C10<60,IF(D10<60,"你需要补考的科目是:英语、政治","你需要补考的科目是:英语"),IF(D10<60,"你需要补考的科目是:政治","恭喜你,你不用补"))))

上面就是考虑四科所有的情况下,单纯用IF写的语句,我自己测试过,在EXCEL中可用的。
是不是觉得很长?正常的,如果你学过排列组合,你就清楚,一科只有两种情况,但是两科就是四种,三科就是八种,四科就是十六种,要把十六种情况都写进去,不长才奇怪呢。如果你还要加上物理化学生物历史地理等。。。。。阿门,愿上帝保佑你。。。。。。

==========

为了方便你看上面那段代码,我把它分解如下,这样结构清晰一些,容易看

=IF(
A10<60,IF(
B10<60,IF(
C10<60,IF(
D10<60,"你需要补考的科目是:语文、数学、英语、政治","你需要补考的科目是:语文、数学、英语"
),IF(
D10<60,"你需要补考的科目是:语文、数学、政治","你需要补考的科目是:语文、数学"
)
),IF(
C10<60,IF(D10<60,"你需要补考的科目是:语文、英语、政治","你需要补考的科目是:语文、英语"
),IF(
D10<60,"你需要补考的科目是:语文、政治","你需要补考的科目是:语文"
)
)
),IF(
B10<60,IF(
C10<60,IF(
D10<60,"你需要补考的科目是:数学、英语、政治","你需要补考的科目是:数学、英语"
),IF(
D10<60,"你需要补考的科目是:数学、政治","你需要补考的科目是:数学"
)
),IF(
C10<60,IF(
D10<60,"你需要补考的科目是:英语、政治","你需要补考的科目是:英语"
),IF(
D10<60,"你需要补考的科目是:政治","恭喜你,你不用补"
)
)
)
)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-14
=IF(B2=H2,I2,IF(B2=H3,I3,IF(B2=H4,I4,IF(B2=H5,I5))))
上边的公式的含义就是:
如果,B2=H2,返回或显示I2这个数值;
否则,如果,B2=H3,返回或显示I3这个数值;
否则,如果,B2=H4,返回或显示I4这个数值;
否则,如果,B2=H5,返回或显示I5这个数值;
否则,不显示。
这个函数写得有点麻烦,他的意思就是从H2:H5中找到=B2的,显示同行的I列数值。
这种判断是在“否”的条件中连续判断。
=IF(AND(IF(TYPE(YEAR(I55))=16,0,YEAR(I55))=2001,IF(TYPE(MONTH(I55))=16,0,MONTH(I55))<=6),7-IF(TYPE(MONTH(I55))=16,0,MONTH(I55)),0)
这个函数的意思是:如I55单元格中数据为日期,且为2001年度6月份以前(2001.1-2001.6)时,显示7-月份的数值,否则显示0。
写函数这种事情,每个人的做法都是不一样的,关键是自己的思路要清晰。
对于第一个公式,在自己做的时候,选择一步步分解,看对你有没有帮助。
if(条件,真,假)
=IF(B2=H2,I2,*)
*=IF(B2=H3,I3,*)
*=IF(B2=H4,I4,*)
*=IF(B2=H5,I5)
第2个回答  2009-02-26
IF

执行真假值判断,根据逻辑计算的真假值,返回不同结果。

可以使用函数 IF 对数值和公式进行条件检测。

语法

IF(logical_test,value_if_true,value_if_false)

Logical_test 表示计算结果为 TRUE 或 FALSE 的任意值或表达式。例如,A10=100 就是一个逻辑表达式,如果单元格 A10 中的值等于 100,表达式即为 TRUE,否则为 FALSE。本参数可使用任何比较运算符。

Value_if_true logical_test 为 TRUE 时返回的值。例如,如果本参数为文本字符串“预算内”而且 logical_test 参数值为 TRUE,则 IF 函数将显示文本“预算内”。如果 logical_test 为 TRUE 而 value_if_true 为空,则本参数返回 0(零)。如果要显示 TRUE,则请为本参数使用逻辑值 TRUE。Value_if_true 也可以是其他公式。

Value_if_false logical_test 为 FALSE 时返回的值。例如,如果本参数为文本字符串“超出预算”而且 logical_test 参数值为 FALSE,则 IF 函数将显示文本“超出预算”。如果 logical_test 为 FALSE 且忽略了 Value_if_false(即 value_if_true 后没有逗号),则会返回逻辑值 FALSE。如果 logical_test 为 FALSE 且 Value_if_false 为空(即 value_if_true 后有逗号,并紧跟着右括号),则本参数返回 0(零)。Value_if_false 也可以是其他公式。

说明

函数 IF 可以嵌套七层,用 value_if_false 及 value_if_true 参数可以构造复杂的检测条件。请参阅下面最后一个示例。
在计算参数 value_if_true 和 value_if_false 后,函数 IF 返回相应语句执行后的返回值。
如果函数 IF 的参数包含数组,则在执行 IF 语句时,数组中的每一个元素都将计算。
Microsoft Excel 还提供了其他一些函数,可依据条件来分析数据。例如,如果要计算单元格区域中某个文本字符串或数字出现的次数,则可使用 COUNTIF 工作表函数。如果要根据单元格区域中的某一文本字符串或数字求和,则可使用 SUMIF 工作表函数。请了解关于根据条件计算值。
示例 1

如果您将示例复制到空白工作表中,可能会更易于理解该示例。

操作方法

创建空白工作簿或工作表。
请在“帮助”主题中选取示例。不要选取行或列标题。

从帮助中选取示例。

按 Ctrl+C。
在工作表中,选中单元格 A1,再按 Ctrl+V。
若要在查看结果和查看返回结果的公式之间切换,请按 Ctrl+`(重音符),或在“工具”菜单上,指向“公式审核”,再单击“公式审核模式”。

1
2
A
数据
50
公式 说明(结果)
=IF(A2<=100,"Within budget","Over budget") 如果上面的数字小于等于 100,则公式将显示“Within budget”。否则,公式显示“Over budget”。(Within budget)
=IF(A2=100,SUM(B5:B15),"") 如果上面数字为 100,则计算单元格区域 B5:B15,否则返回空文本 ("")

示例 2

如果您将示例复制到空白工作表中,可能会更易于理解该示例。

操作方法

创建空白工作簿或工作表。
请在“帮助”主题中选取示例。不要选取行或列标题。

从帮助中选取示例。

按 Ctrl+C。
在工作表中,选中单元格 A1,再按 Ctrl+V。
若要在查看结果和查看返回结果的公式之间切换,请按 Ctrl+`(重音符),或在“工具”菜单上,指向“公式审核”,再单击“公式审核模式”。

1
2
3
4
A B
实际费用 预算费用
1500 900
500 900
500 925
公式 说明(结果)
=IF(A2>B2,"Over Budget","OK") 判断第 1 行是否超出预算 (Over Budget)
=IF(A3>B3,"Over Budget","OK") 判断第 2 行是否超出预算 (OK)

示例 3

如果您将示例复制到空白工作表中,可能会更易于理解该示例。

操作方法

创建空白工作簿或工作表。
请在“帮助”主题中选取示例。不要选取行或列标题。

从帮助中选取示例。

按 Ctrl+C。
在工作表中,选中单元格 A1,再按 Ctrl+V。
若要在查看结果和查看返回结果的公式之间切换,请按 Ctrl+`(重音符),或在“工具”菜单上,指向“公式审核”,再单击“公式审核模式”。

1
2
3
4
A
成绩
45
90
78
公式 说明(结果)
=IF(A2>89,"A",IF(A2>79,"B", IF(A2>69,"C",IF(A2>59,"D","F")))) 为第一个成绩指定一个字母等级 (F)
=IF(A3>89,"A",IF(A3>79,"B", IF(A3>69,"C",IF(A3>59,"D","F")))) 为第二个成绩指定一个字母等级 (A)
=IF(A4>89,"A",IF(A4>79,"B", IF(A4>69,"C",IF(A4>59,"D","F")))) 为第三个成绩指定一个字母等级 (C)

在上例中,第二个 IF 语句同时也是第一个 IF 语句的参数 value_if_false。同样,第三个 IF 语句是第二个 IF 语句的参数 value_if_false。例如,如果第一个 logical_test (Average > 89) 为 TRUE,则返回“A”;如果第一个 logical_test 为 FALSE,则计算第二个 IF 语句,以此类推。

用下列关键字指定数字的字母等级。

如果成绩是 则返回
大于 89 A
80 到 89 B
70 到 79 C
60 到 69 D
小于 60 F
第3个回答  2009-02-26
=IF(B2=H2,I2,IF(B2=H3,I3,IF(B2=H4,I4,IF(B2=H5,I5))))
上边的公式的含义就是:
如果,B2=H2,返回或显示I2这个数值;
否则,如果,B2=H3,返回或显示I3这个数值;
否则,如果,B2=H4,返回或显示I4这个数值;
否则,如果,B2=H5,返回或显示I5这个数值;
否则,不显示。
这个函数写得有点麻烦,他的意思就是从H2:H5中找到=B2的,显示同行的I列数值。
这种判断是在“否”的条件中连续判断。

=IF(AND(IF(TYPE(YEAR(I55))=16,0,YEAR(I55))=2001,IF(TYPE(MONTH(I55))=16,0,MONTH(I55))<=6),7-IF(TYPE(MONTH(I55))=16,0,MONTH(I55)),0)
这个函数的意思是:如I55单元格中数据为日期,且为2001年度6月份以前(2001.1-2001.6)时,显示7-月份的数值,否则显示0。

写函数这种事情,每个人的做法都是不一样的,关键是自己的思路要清晰。
对于第一个公式,在自己做的时候,选择一步步分解,看对你有没有帮助。
if(条件,真,假)
=IF(B2=H2,I2,*)
*=IF(B2=H3,I3,*)
*=IF(B2=H4,I4,*)
*=IF(B2=H5,I5)
第4个回答  2009-02-27
因为不晓得你的具体问题是什么,我介绍下我使用IF公式中的条件判断语句的经验:
1. 比如说判断单元格B5是否>5且<10,通常人的思维是输入:=IF(5<B5<10,TRUE,FALSE),但这是错误的。应该利用AND(逻辑“与”语句)、OR(逻辑“或”语句)或NOR(逻辑“都不是”语句)来将两个条件综合。
正确的写法是:=IF(AND(B5>5,B5<10),1,0) 其他类似的问题你只要理清楚其中的逻辑关系后灵活运用就可。
2. 注意条件判断语句没有“≤”“≥”,分别该书写为“<=”“>=”
3. 如果是比较复杂的判断,你或者可以反复嵌套使用IF(这个前面的人中有很多举例如:=IF(A2>89,"A",IF(A2>79,"B", IF(A2>69,"C",IF(A2>59,"D","F")))) ),或者可以反复嵌套AND或OR,比如判断:A2是否在(5,10)或(12,15)区间
=IF(OR(AND(A2<10,A2>5),AND(A2<15,A2>12),TRUE,FALSE)
这些能解决你的问题吗
相似回答