IF函数允许通过测试某个条件并返回True或False的结果,从而对某个值和预期值进行逻辑比较 。
=IF(内容为True,则执行某些操作,否则就执行其他操作)
因此IF语句可能有两个结果 。第一个结果是比较结果为True,第二个结果是比较结果为False 。
IF语句非常强大,其构成了许多电子表格模型的基础,但也是导致许多电子表格问题的根本原因 。理想情况下,IF语句应适用于最小条件(例如Male/Female和Yes/No/Maybe),但是对更复杂情况求值时则需要同时嵌套*3个以上的IF函数 。
*“嵌套”是指在一个公式中连接多个函数的做法 。
技术细节使用逻辑函数IF函数时,如果条件为真,该函数将返回一个值;如果条件为假,函数将返回另一个值 。
语法
IF(logical_test,value_if_true,[value_if_false])
例如:
- =IF(A2>B2,”超出预算”,”正常”)
- =IF(A2=B2,B4-A4,””)
参数名称
说明
【IF 函数 - 嵌套公式和避免错误】logical_test
(必需)
要测试的条件 。
value_if_true
(必需)
logical_test的结果为TRUE时,您希望返回的值 。
value_if_false
(可选)
logical_test的结果为FALSE时,您希望返回的值 。
备注虽然Excel允许嵌套最多64个不同的IF函数,但不建议这样做 。原因?
要正确地构建多个IF语句需要花大量心思,并要确保其逻辑在直至结尾的每个条件下都能计算正确 。如果嵌套公式不是100%准确,那么计算过程可能花75%的时间,而返回结果可能花25%的时间,并且结果并不理想 。但是得出这25%结果的几率很小 。
多个IF语句维护起来非常困难,特别是过一段时间后回头再看,想要了解当时你(其他人的话更糟糕)想要做什么时 。
如果发现IF语句似乎在无穷无尽地不断增加,这时候应放下鼠标,重新思考策略 。
我们来了解一下如何使用多个IF正确创建一个复杂的嵌套IF语句,以及何时应使用Excel库中的其他工具 。
示例以下示例介绍了一个相对标准的嵌套IF语句,该语句将学生考试成绩转化为等效字母等级 。
=IF(D2>89,”A”,IF(D2>79,”B”,IF(D2>69,”C”,IF(D2>59,”D”,”F”))))
此复杂嵌套IF语句遵循一个简单逻辑:
- 如果TestScore(单元格D2)大于89,则学生获得A
- 如果TestScore大于79,则学生获得B
- 如果TestScore大于69,则学生获得C
- 如果TestScore大于59,则学生获得D
- 否则,学生获得F
此特定示例的安全性相对较安全,因为测试分数和信函成绩之间的相关性不可能更改,因此不需要大量维护 。但是,如果你需要在+、a和a之间划分成绩(等等),这会是一种想法—?现在,如果需要重新编写语句,则你的四个条件有12个条件!现在,你的公式如下所示:
=IF(B2>97,”A+”,IF(B2>93,”A”,IF(B2>89,”A-“,IF(B2>87,”B+”,IF(B2>83,”B”,IF(B2>79,”B-“,IF(B2>77,”C+”,IF(B2>73,”C”,IF(B2>69,”C-“,IF(B2>57,”D+”,IF(B2>53,”D”,IF(B2>49,”D-“,”F”))))))))))))
该公式仍具有准确的功能并按预期工作,但需要花很长时间编写并花更长时间进行测试,才能确保该公式可完成所需操作 。另一个明显的问题是必须手动输入分数和等效字母等级 。不小心输错字的几率是多少?想象一下,需要使用更复杂的条件64次!当然这是可能实现的,但你真的想给自己带来这种麻烦和难以察觉的可能错误吗?
推荐阅读