今天才知道原来 Excel 也是可以编程的,并且语法还挺有意思。今天一个朋友来问我 Excel 中的 IF 函数该怎么用,说自己折腾了半天搞不定。于是就花了点时间网上搜了下,看了看只有官方的文档写的最为清晰,就在此分享一下吧。整体还是很简单的,看一下应该都能懂。
下面直接摘录微软官方文档,文档地址:IF 函数 – 嵌套公式和避免错误
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,””)
二、备注
虽然 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 语句遵循一个简单逻辑:
- 如果 Test Score(单元格 D2)大于 89,则学生获得 A
- 如果 Test Score 大于 79,则学生获得 B
- 如果 Test Score 大于 69,则学生获得 C
- 如果 Test Score 大于 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 次!当然这是可能实现的,但你真的想给自己带来这种麻烦和难以察觉的可能错误吗?
提示: Excel 中的每个函数都需要使用左括号和右括号 ()。编辑时,Excel 会通过对公式的不同部分着色来帮助你定位。例如,如果要编辑上面的公式,将光标移过每个右括号“)”时,它的相应左括号会显示相同颜色。在复杂嵌套公式中检查是否拥有足够的匹配括号时,此方法尤其有用。
四、结语
我相信到这儿大家应该就能理解 IF 函数的嵌套是怎么用的了,官方文档页面还有更多示例,如果还是觉得不懂的可以前往官方文档继续查看。