excel公式中的if条件语句如何在excel公式中的if使用and和or逻辑2007-12-27因为本人从事教学工作,经常要用到Excel对成绩进行计算汇总,其中遇到的一个典型的问题是如何根据分数来给出优、良、中、差的等级。
如果只有两个分数段(如及格、不及格两个级别)很好办,假设成绩数据已经输入单元格A1,直接用Excel公式输入条件A1>=60,为真时填写“及格”,为假时填写“不及格”就可以了。
这时显示在Excel 单元格里的公式是:=IF(A1>=60, “及格”,“不及格”)。
如果有多个分数段,比如要求:x<60-----------------------不及格x>=60 AND x<75--------及格x>=75 AND x<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>=0 and a1<60,这是Excel公式和Excel VBA语言一点区别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),"输入错误")))))/lqgb/blog/item/de375f0f4987212a6059f39f.htmlIF 函数本文介绍Microsoft Excel 中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.选择本文中的示例。
如果在Excel Web App 中复制该示例,请每次复制并粘贴一个单元格。
请勿选择行标题或列标题。
从帮助中选择一个示例2.按Ctrl+C。
3.创建一个空白工作簿或工作表。
4.在工作表中,选择单元格A1,然后按Ctrl+V。
如果在ExcelWeb App 中工作,请对示例中的每个单元格重复复制和粘贴操作。
为使示例正常工作,必须将其粘贴到工作表的单元格A1 中。
5.要在查看结果和查看返回结果的公式之间进行切换,请按Ctrl+`(重音符),或在“公式”选项卡上的“公式审核”组中单击“显示公式”按钮。
在将示例复制到空白工作表中后,您可以根据自己的需求对它进行调整。
1 2 345A B C 数据50 23公式说明结果=IF(A2<=100,"预算内","超出预算")如果单元格A2 中的数字小于等于100,公式将返回“预算内”;否则,函数显示“超出预算”。
预算内=IF(A2=100,A2+B2,"") 如果单元格A2 中的数字为100,则计算并返回A2 与B2的和;否则,返回空文本("")。
空文本("")示例2如果将示例复制到一个空白工作表中,可能会更容易理解该示例。
如何复制示例?1.选择本文中的示例。
如果在Excel Web App 中复制该示例,请每次复制并粘贴一个单元格。
请勿选择行标题或列标题。
从帮助中选择一个示例2.按Ctrl+C。
3.创建一个空白工作簿或工作表。
4.在工作表中,选择单元格A1,然后按Ctrl+V。
如果在ExcelWeb App 中工作,请对示例中的每个单元格重复复制和粘贴操作。
为使示例正常工作,必须将其粘贴到工作表的单元格A1 中。
5.要在查看结果和查看返回结果的公式之间进行切换,请按Ctrl+`(重音符),或在“公式”选项卡上的“公式审核”组中单击“显示公式”按钮。
在将示例复制到空白工作表中后,您可以根据自己的需求对它进行调整。
1234567AB C实际费用预期费用1500 900500 900500 925公式说明结果=IF(A2>B2,"超出预算","正常") 检查第2 行的费用是否超出预算超出预算=IF(A3>B3,"超出预算","正常") 检查第3 行的费用是否超出预算正常示例3如果将示例复制到一个空白工作表中,可能会更容易理解该示例。
如何复制示例?1.选择本文中的示例。
如果在Excel Web App 中复制该示例,请每次复制并粘贴一个单元格。
请勿选择行标题或列标题。
从帮助中选择一个示例2.按Ctrl+C。
3.创建一个空白工作簿或工作表。
4.在工作表中,选择单元格A1,然后按Ctrl+V。
如果在ExcelWeb App 中工作,请对示例中的每个单元格重复复制和粘贴操作。
为使示例正常工作,必须将其粘贴到工作表的单元格A1 中。
5.要在查看结果和查看返回结果的公式之间进行切换,请按Ctrl+`(重音符),或在“公式”选项卡上的“公式审核”组中单击“显示公式”按钮。
在将示例复制到空白工作表中后,您可以根据自己的需求对它进行调整。
12345678AB C分数459078公式说明结果=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 语句。