excel公式中的if条件语句如何在excel公式中的if使用and和or逻辑.docx
《excel公式中的if条件语句如何在excel公式中的if使用and和or逻辑.docx》由会员分享,可在线阅读,更多相关《excel公式中的if条件语句如何在excel公式中的if使用and和or逻辑.docx(12页珍藏版)》请在冰豆网上搜索。
excel公式中的if条件语句如何在excel公式中的if使用and和or逻辑
excel公式中的if条件语句如何在excel公式中的if使用and和or逻辑
2007-12-27
因为本人从事教学工作,经常要用到Excel对成绩进行计算汇总,其中遇到的一个典型的问题是如何根据分数来给出优、良、中、差的等级。
如果只有两个分数段(如及格、不及格两个级别)很好办,假设成绩数据已经输入单元格A1,直接用Excel公式输入条件A1>=60,为真时填写“及格”,为假时填写“不及格”就可以了。
这时显示在Excel单元格里的公式是:
=IF(A1>=60,“及格”,“不及格”)。
如果有多个分数段,比如要求:
x<60-----------------------不及格
x>=60ANDx<75--------及格
x>=75ANDx<85--------良
x>=85----------------------优
其实很简单,只要了解Excel里IF函数参数和返回值的用法,第一个参数是条件,第二个参数是条件为真的返回值,第三个参数是条件为假的返回值;而且IF函数可以嵌套(根据Excel2003的帮助文件,最多嵌套可达七层),这样上面的问题可以用如下公式来解决:
=IF(A1<60,"不及格",IF(A1<75,"及格",IF(A1<85,"良","优")))
(这时无法使用Excel的交互式的方法输入,可以把这个公式修改后复制到单元格里)
因为Excel特有的单元格拖拽功能,很容易就把这个公式给复制到一整列上了,这样就实现了一系列成绩自动的给出等级,使用起来还是比较方便的。
这个小技巧比较初级,但是我认为还是比较的实用的,见笑了。
(yanqlv原创,转载请注明出处)
feng1725改进与完善:
成绩的正常值在0到100之间,大于0或小于100就是非法值,对此,我们对以上公式进行改进:
由于if语句嵌套的层数比较多,容易混乱,我们先把分段的语句写清楚,先写简单的语句,后整合。
1、把业务条件转化为逻辑语句
if(and(a1>=0,a1<60),"不及格")
if(and(a1>=60,a1<80),"及格")
if(and(a1>=80,a1<90),"良")
if(and(a1>=90,a1<=100),"优秀")
if(or(a1<0,a1>100),"输入错误")
在Excel公式中and的与逻辑应写成and(a1>=0,a1<60),
而不是a1>=0anda1<60,这是Excel公式和ExcelVBA语言一点区别
2、整合:
if(and(a1>=0,a1<60),"不及格",if(and(a1>=60,a1<80),"及格",if(and(a1>=80,a1<90),"良",if(and(a1>=90,a1<=100),"优秀",if(or(a1<0,a1>100),"输入错误")))))
IF函数
本文介绍MicrosoftExcel中IF函数(函数:
函数是预先编写的公式,可以对一个或多个值执行运算,并返回一个或多个值。
函数可以简化和缩短工作表中的公式,尤其在用公式执行很长或复杂的计算时。
)的公式语法和用法。
说明
如果指定条件的计算结果为TRUE,IF函数将返回某个值;如果该条件的计算结果为FALSE,则返回另一个值。
例如,如果A1大于10,公式=IF(A1>10,"大于10","不大于10")将返回“大于10”,如果A1小于等于10,则返回“不大于10”。
语法
IF(logical_test,[value_if_true],[value_if_false])IF函数语法具有下列参数(参数:
为操作、事件、方法、属性、函数或过程提供信息的值。
):
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参数(即logical_test参数后仅跟一个逗号),IF函数将返回0(零)。
若要显示单词TRUE,请对value_if_true参数使用逻辑值TRUE。
value_if_false可选。
logical_test参数的计算结果为FALSE时所要返回的值。
例如,如果此参数的值为文本字符串“超出预算”,并且logical_test参数的计算结果为FALSE,则IF函数返回文本“超出预算”。
如果logical_test的计算结果为FALSE,并且省略value_if_false参数(即value_if_true参数后没有逗号),则IF函数返回逻辑值FALSE。
如果logical_test的计算结果为FALSE,并且省略value_if_false参数的值(即,在IF函数中,value_if_true参数后没有逗号),则IF函数返回值0(零)。
说明
最多可以使用64个IF函数作为value_if_true和value_if_false参数进行嵌套,以构造更详尽的测试。
(请参阅示例3,这是嵌套IF函数的一个示例。
)或者,若要测试多个条件,请考虑使用LOOKUP、VLOOKUP、HLOOKUP或CHOOSE函数。
(请参阅示例4,这是LOOKUP函数的一个示例。
)
如果IF的任意参数为数组(数组:
用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。
数组区域共用一个公式;数组常量是用作参数的一组常量。
),则在执行IF语句时,将计算数组的每一个元素。
Excel还提供了其他一些函数,可使用这些函数根据条件来分析数据。
例如,若要计算某单元格区域内某个文本字符串或数字出现的次数,可使用COUNTIF或COUNTIFS工作表函数。
若要计算基于某区域内一个文本字符串或一个数值的总和,可使用SUMIF或SUMIFS工作表函数。
示例
示例1
如何复制示例?
如果将示例复制到一个空白工作表中,可能会更容易理解该示例。
1.选择本文中的示例。
如果在ExcelWebApp中复制该示例,请每次复制并粘贴一个单元格。
要点 请勿选择行标题或列标题。
从帮助中选择一个示例
2.按Ctrl+C。
3.创建一个空白工作簿或工作表。
4.在工作表中,选择单元格A1,然后按Ctrl+V。
如果在ExcelWebApp中工作,请对示例中的每个单元格重复复制和粘贴操作。
要点 为使示例正常工作,必须将其粘贴到工作表的单元格A1中。
5.要在查看结果和查看返回结果的公式之间进行切换,请按Ctrl+`(重音符),或在“公式”选项卡上的“公式审核”组中单击“显示公式”按钮。
在将示例复制到空白工作表中后,您可以根据自己的需求对它进行调整。
1
2
3
4
5
A
B
C
数据
50
23
公式
说明
结果
=IF(A2<=100,"预算内","超出预算")
如果单元格A2中的数字小于等于100,公式将返回“预算内”;否则,函数显示“超出预算”。
预算内
=IF(A2=100,A2+B2,"")
如果单元格A2中的数字为100,则计算并返回A2与B2的和;否则,返回空文本("")。
空文本("")
示例2
如果将示例复制到一个空白工作表中,可能会更容易理解该示例。
如何复制示例?
1.选择本文中的示例。
如果在ExcelWebApp中复制该示例,请每次复制并粘贴一个单元格。
要点 请勿选择行标题或列标题。
从帮助中选择一个示例
2.按Ctrl+C。
3.创建一个空白工作簿或工作表。
4.在工作表中,选择单元格A1,然后按Ctrl+V。
如果在ExcelWebApp中工作,请对示例中的每个单元格重复复制和粘贴操作。
要点 为使示例正常工作,必须将其粘贴到工作表的单元格A1中。
5.要在查看结果和查看返回结果的公式之间进行切换,请按Ctrl+`(重音符),或在“公式”选项卡上的“公式审核”组中单击“显示公式”按钮。
在将示例复制到空白工作表中后,您可以根据自己的需求对它进行调整。
XX文库-让每个人平等地提升自我
1
2
3
4
5
6
7
A
B
C
实际费用
预期费用
1500
900
500
900
500
925
公式
说明
结果
=IF(A2>B2,"超出预算","正常")
检查第2行的费用是否超出预算
超出预算
=IF(A3>B3,"超出预算","正常")
检查第3行的费用是否超出预算
正常
示例3
如果将示例复制到一个空白工作表中,可能会更容易理解该示例。
如何复制示例?
1.选择本文中的示例。
如果在ExcelWebApp中复制该示例,请每次复制并粘贴一个单元格。
要点 请勿选择行标题或列标题。
从帮助中选择一个示例
2.按Ctrl+C。
3.创建一个空白工作簿或工作表。
4.在工作表中,选择单元格A1,然后按Ctrl+V。
如果在ExcelWebApp中工作,请对示例中的每个单元格重复复制和粘贴操作。
要点 为使示例正常工作,必须将其粘贴到工作表的单元格A1中。
5.要在查看结果和查看返回结果的公式之间进行切换,请按Ctrl+`(重音符),或在“公式”选项卡上的“公式审核”组中单击“显示公式”按钮。
在将示例复制到空白工作表中后,您可以根据自己的需求对它进行调整。
1
2
3
4
5
6
7
8
A
B
C
分数
45
90
78
公式
说明
结果
=IF(A2>89,"A",IF(A2>79,"B",IF(A2>69,"C",IF(A2>59,"D","F"))))
给单元格A2中的分数指定一个字母等级
F
=IF(A3>89,"A",IF(A3>79,"B",IF(A3>69,"C",IF(A3>59,"D","F"))))
给单元格A3中的分数指定一个字母等级
A
=IF(A4>89,"A",IF(A4>79,"B",IF(A4>69,"C",IF(A4>59,"D","F"))))
给单元格A4中的分数指定一个字母等级
C
上面的示例演示了如何嵌套IF语句。
在每个公式中,第四个IF语句同时也是第三个IF语句的value_if_false参数。
同样,第三个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
示例4
在本示例中,使用的是LOOKUP函数而不是IF函数,因为要测试十三个条件。
您会发现,与IF函数相比,LOOKUP函数更易于看懂和维护。
如果将示例复制到一个空白工作表中,可能会更容易理解该示例。
如何复制示例?
1.选择本文中的示例。
如果在ExcelWebApp中复制该示例,请每次复制并粘贴一个单元格。
要点 请勿选择行标题或列标题。
从帮助中选择一个示例
2.按Ctrl+C。
3.创建一个空白工作簿或工作表。
4.在工作表中,选择单元格A1,然后按Ctrl+V。
如果在ExcelWebApp中工作,请对示例中的每个单元格重复复制和粘贴操作。
要点 为使示例正常工作,必须将其粘贴到工作表的单元格A1中。
5.Ctrl+`(重音符),或在“公式”选项卡上的“公式审核”组中单击“显示公式”按钮。
在将示例复制到空白工作表中后,您可以根据自己的需求对它进行调整。
1
2
3
4
5
6
7
8
A
B
C
分数
45
90
78
公式
说明
结果
=LOOKUP(A2,{0,60,63,67,70,73,77,80,83,87,90,93,97},{"F","D-","D","D+","C-","C","C+","B-","B","B+","A-","A","A+"})
给单元格A2中的分数指定一个字母等级
F
=LOOKUP(A3,{0,60,63,67,70,73,77,80,83,87,90,93,97},{"F","D-","D","D+","C-","C","C+","B-","B","B+","A-","A","A+"})
给单元格A3中的分数指定一个字母等级
A-
=LOOKUP(A4,{0,60,63,67,70,73,77,80,83,87,90,93,97},{"F","D-","D","D+","C-","C","C+","B-","B","B+","A-","A","A+"})
给单元格A4中的分数指定一个字母等级
C+
另请参阅
逻辑函数(参考)
单击以下列表中的某个链接可查看相应函数的详细帮助信息。
函数
说明
AND函数
如果其所有参数均为TRUE,则返回TRUE
FALSE函数
返回逻辑值FALSE
IF函数
指定要执行的逻辑检测
IFERROR函数
如果公式的计算结果错误,则返回您指定的值;否则返回公式的结果
NOT函数
对其参数的逻辑求反
OR函数
如果任一参数为TRUE,则返回TRUE
TRUE函数
返回逻辑值TRUE