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----------------------优
1
其实很简单,只要了解Excel里IF函数参数和返回值的用法,第一个参数是条件,第二个参数是条件为真的返回值,第三个参数是条件为假的返回值;而且IF函数可以嵌套(根据Excel2003的帮助文件,最多嵌套可达七层),这样上面的问题可以用如下公式来解决:
=IF(A1<60,\"不及格\及格\良\优\")))
(这时无法使用Excel的交互式的方法输入,可以把这个公式修改后复制到单元格里)
因为Excel特有的单元格拖拽功能,很容易就把这个公式给复制到一整列上了,这样就实现了一系列成绩自动的给出等级,使用起来还是比较方便的。这个小技巧比较初级,但是我认为还是比较的实用的,见笑了。
(yanqlv原创,转载请注明出处)
feng1725改进与完善:
成绩的正常值在0到100之间,大于0或小于100就是非法值,对此,我们对以上公式进行改进:
2
由于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),\"不及格\及格\
良
\
优
秀
\输入错误\")))))
3
http://hi.baidu.com/lqgb/blog/item/de375f0f4987212a6059f39f.html
4
IF 函数
本文介绍 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 时所要
5
返回的值。例如,如果此参数的值为文本字符串“预算内”,并且 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(零)。 说明
最多可以使用 个 IF 函数作为 value_if_true 和 value_if_false 参数进行嵌套,以构造更详尽的测试。(请参阅示例 3,这是嵌套 IF 函数的一个示例。)或者,若要测试多个条件,请考虑使用 LOOKUP、VLOOKUP、HLOOKUP 或 CHOOSE 函数。(请参阅示例 4,这是 LOOKUP 函数的一个示例。)
如果 IF 的任意参数为数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。),则在执行 IF 语句时,将
6
计算数组的每一个元素。
Excel 还提供了其他一些函数,可使用这些函数根据条件来分析数据。例如,若要计算某单元格区域内某个文本字符串或数字出现的次数,可使用 COUNTIF 或 COUNTIFS 工作表函数。若要计算基于某区域内一个文本字符串或一个数值的总和,可使用 SUMIF 或 SUMIFS 工作表函数。 示例 示例 1 如何复制示例?
如果将示例复制到一个空白工作表中,可能会更容易理解该示例。 1.
选择本文中的示例。如果在 Excel Web App 中复制该示例,请每次复制并粘贴一个单元格。
要点 请勿选择行标题或列标题。
从帮助中选择一个示例 2. 3.
按 Ctrl+C。
创建一个空白工作簿或工作表。
7
4. 在工作表中,选择单元格 A1,然后按 Ctrl+V。如果在 Excel Web App 中工作,请对示例中的每个单元格重复复制和粘贴操作。
要点 为使示例正常工作,必须将其粘贴到工作表的单元格 A1 中。
5. 要在查看结果和查看返回结果的公式之间进行切换,请按 Ctrl+`(重音符),或在 “公式”选项卡上的 “公式审核”组中单击 “显示公式”按钮。
在将示例复制到空白工作表中后,您可以根据自己的需求对它进行调整。 A 1 数据 2 3 50
B 23
C
说明 结果 公式
=IF(A2<=100,\"预算内\如果单元格 A2 中的数字小于预算
等于 100,公式将返回“预算内”;内 4 超出预算\")
否则,函数显示“超出预算”。
=IF(A2=100,A2+B2,\"\") 如果单元格 A2 中的数字为 空文 100,则计算并返回 A2 与 B2 本 5 的和;否则,返回空文本 (\"\")。 (\"\")
8
示例 2
如果将示例复制到一个空白工作表中,可能会更容易理解该示例。
如何复制示例? 1.
选择本文中的示例。如果在 Excel Web App 中复制该示例,请每次复制并粘贴一个单元格。
要点 请勿选择行标题或列标题。
从帮助中选择一个示例 2. 3. 4.
按 Ctrl+C。
创建一个空白工作簿或工作表。
在工作表中,选择单元格 A1,然后按 Ctrl+V。如果在 Excel Web App 中工作,请对示例中的每个单元格重复复制和粘贴操作。
要点 为使示例正常工作,必须将其粘贴到工作表的单元格 A1 中。
9
5. 要在查看结果和查看返回结果的公式之间进行切换,请按 Ctrl+`(重音符),或在 “公式”选项卡上的 “公式审核”组中单击 “显示公式”按钮。
在将示例复制到空白工作表中后,您可以根据自己的需求对它进行调整。
A 实际费用 1 1500 2 3 500 4 5
公式 6
=IF(A2>B2,\"超出预算\正 常\") 7
=IF(A3>B3,\"超出预算\正常\")
B 预期费用 900 900 925 说明
C 结果
500
检查第 2 行的费用是否超超出预出预算 算 检查第 3 行的费用是否超正常 出预算
示例 3
如果将示例复制到一个空白工作表中,可能会更容易理解该示例。 如何复制示例?
10
1.
选择本文中的示例。如果在 Excel Web App 中复制该示例,请每次复制并粘贴一个单元格。
要点 请勿选择行标题或列标题。
从帮助中选择一个示例 2. 3. 4.
按 Ctrl+C。
创建一个空白工作簿或工作表。
在工作表中,选择单元格 A1,然后按 Ctrl+V。如果在 Excel Web App 中工作,请对示例中的每个单元格重复复制和粘贴操作。
要点 为使示例正常工作,必须将其粘贴到工作表的单元格 A1 中。
5.
要在查看结果和查看返回结果的公式之间进行切换,请按 Ctrl+`(重音符),或在 “公式”选项卡上的 “公式审核”组中单击 “显示公式”按钮。
在将示例复制到空白工作表中后,您可以根据自己的需求对它进行调整。
11
A 分数 1 2 90 45
B 说明
C 结果
3 78 4 5 公式
=IF(A2>,\"A\6
IF(A2>69,\"C\ 7 8
给单元格 A2 F 中的分数指定一个字母等级 给单元格 A3 A 中的分数指定一个字母等级 给单元格 A4 C 中的分数指定一个字母等级
=IF(A3>,\"A\
IF(A3>69,\"C\
=IF(A4>,\"A\
IF(A4>69,\"C\
上面的示例演示了如何嵌套 IF 语句。在每个公式中,第四个 IF 语句同时也是第三个 IF 语句的 value_if_false 参数。同样,第三个 IF 语句是第二个 IF 语句的 value_if_false 参数,第二个 IF 语句是第一个 IF 语句的 value_if_false 参数。例如,如果第一个 logical_test
12
参数 (Average>) 的计算结果为 TRUE,则返回“A”;如果第一个 logical_test 参数的计算结果为 FALSE,则计算第二个 IF 语句,依此类推。您也可以将其他函数用作参数。
使用下列关键字指定数字的字母等级。
如果分数是 则返回
大于 A
80 到 B
70 到 79 C
60 到 69 D
低于 60 F
示例 4
在本示例中,使用的是 LOOKUP 函数而不是 IF 函数,因为要测试十三个条件。您会发现,与 IF 函数相比,LOOKUP 函数更易于看懂和维护。
如果将示例复制到一个空白工作表中,可能会更容易理解该示例。
如何复制示例?
13
1. 选择本文中的示例。如果在 Excel Web App 中复制该示例,请每次复制并粘贴一个单元格。
要点 请勿选择行标题或列标题。
从帮助中选择一个示例 2. 3. 4.
按 Ctrl+C。
创建一个空白工作簿或工作表。
在工作表中,选择单元格 A1,然后按 Ctrl+V。如果在 Excel Web App 中工作,请对示例中的每个单元格重复复制和粘贴操作。
要点 为使示例正常工作,必须将其粘贴到工作表的单元格 A1 中。
5.
要在查看结果和查看返回结果的公式之间进行切换,请按 Ctrl+`(重音符),或在 “公式”选项卡上的 “公式审核”组中单击 “显示公式”按钮。
在将示例复制到空白工作表中后,您可以根据自己的需求对它进行调整。
14
A 分数 45 90 1 78 2 3 公式
B C 说结明 果
4 =LOOKUP(A2,{0,60,63,67,70,73,77,80,83,87,90,93,97},{\"给F F\单5 元
格
A 2 6 中
的
分
数7
指
定 一8 个
字母等级 =LOOKUP(A3,{0,60,63,67,70,73,77,80,83,87,90,93,97},{\"给A- F\单
元格
15
A3 中的分数指定一个字母等级
=LOOKUP(A4,{0,60,63,67,70,73,77,80,83,87,90,93,97},{\"给CF\单+
元格 A4 中的分数指定一个字母等级
16
另请参阅 逻辑函数(参考)
单击以下列表中的某个链接可查看相应函数的详细帮助信息。 函数
说明
AND 函数 如果其所有参数均为 TRUE,则返回 TRUE
FALSE 函数 返回逻辑值 FALSE IF 函数
指定要执行的逻辑检测
IFERROR 函如果公式的计算结果错误,则返回您指定的值;否则返数 NOT 函数 OR 函数
回公式的结果 对其参数的逻辑求反
如果任一参数为 TRUE,则返回 TRUE
TRUE 函数 返回逻辑值 TRUE
嵌套:如果A1单位格=0,则返回数值6.82;如果A1单元格=0.05,
则返回数值7.023;如果A1单元格=0.09,则返回数值7.283;如果A1单元格=0.13,则返回数值7.563.
在b1单元格编辑公式一一一
=IF(A1=0,6.82,IF(A1=0.05,7.023,IF(A1=0.09,7.283,(IF(A1=0.13,7.563,0))))) =IF(A1=0,0,IF(A1=0.05,7.023,IF(A1=0.09,7.283,IF(A1=0.13,7.563))))
17
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo6.com 版权所有 湘ICP备2023023988号-11
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务