多语言展示
当前在线:1191今日阅读:175今日分享:29

excel中if函数的详解,易犯错误及进阶使用

excel中iF语句判断相应的值,及在嵌套条件过多下,更好的利用VLOOKUP和IFS简化if判断语句的办法。
工具/原料

excel

方法/步骤
1

excel是非常强大的工具,通过一定的设定可以实现判断功能,减轻人为判断的工作量和防止出现低级的失误。if是英文“如果”的意思,通过if可以返回true(对)或者false(错),或者可以返回为空。IF 语句非常强大,其构成了许多电子表格模型的基础,但也是导致许多电子表格问题的根本原因。理想情况下,IF 语句应适用于最小条件(例如 Male/Female 和 Yes/No/Maybe),但是对更复杂情况求值时则需要同时嵌套几个以上的 IF 函数。(Excel新版本允许嵌套最多 64 个不同的 IF 函数,但要正确地构建多个 IF 语句需要花大量心思,并要确保其逻辑在直至结尾的每个条件下都能计算正确。还要反复检查是否出现漏洞,造成阅读不适。)现在我们来了解一下如何使用多个 IF 正确创建一个复杂的嵌套 IF 语句,首先我们已比较常见的学生评分标准为例,简单的判断逻辑为:1.如果 Test Score(单元格 D2)大于 89,则学生获得 A2.如果 Test Score 大于 79,则学生获得 B3.如果 Test Score 大于 69,则学生获得 C4.如果 Test Score 大于 59,则学生获得 D5.否则,学生获得 F则IF语句为:=IF(D2>89,'A',IF(D2>79,'B',IF(D2>69,'C',IF(D2>59,'D','F'))))这个具体示例比较安全,因为考试成绩和字母等级之间的相关性不可能改变,所以不需要太多维护。但想想 - 如果需要在 A+、A 和 A- 等等之间划分成绩应该怎么办?现在 IF 语句包含 4 个条件,需要将其重写为包含 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 次!当然这是可能实现的,但你真的想给自己带来这种麻烦和难以察觉的可能错误吗?

3

下面是一个包含混乱逻辑造成错误的佣金方案示例:D9 中的公式顺序颠倒,变为 =IF(C9>5000,10%,IF(C9>7500,12.5%,IF(C9>10000,15%,IF(C9>12500,17.5%,IF(C9>15000,20%,0)))))发现问题了吗?此示例采用自下而上(从 5,000 美元到 15,000 美元)因为公式无法通过对任何超过 5,000 美元的值的第一次求值。假设销售额为 12,500 美元 - IF 语句将返回 10%,因为该值大于 5,000 美元,所以公式将在第一次判断后停止。

4

此类问题很严重,因为在许多情况下,此类错误容易被忽视,直到产生负面影响才会被发现。 既然知道复杂嵌套 IF 语句具有严重缺陷,你能做些什么?在大多数情况下,可使用 VLOOKUP 函数,而不是使用 IF 函数构建复杂公式。若要使用 VLOOKUP,首先需要创建一个引用表:=VLOOKUP(C2,C5:D17,2,TRUE)

5

此公式表示在 C5:C17 区域中查找 C2 的值。如果找到值,则从 D 列的同一行返回相应值。单元格 C9 中的公式为 =VLOOKUP(B9,B2:C6,2,TRUE)=VLOOKUP(B9,B2:C6,2,TRUE)类似地,此公式将在 B2:B22 区域中查找单元格 B9 的值。如果找到值,则从 C 列的同一行返回相应值。注意: 这两个 VLOOKUP 公式在公式末尾使用 TRUE 参数,这表示需要它们查找适当的匹配项。也就是说,它将匹配查找表中的精确值以及范围内的任何值。在这种情况下,查找表需要按升序排序(从小到大)。此处介绍了 VLOOKUP 的更多详细信息,VLOOKUP 肯定比一个 12 级的复杂嵌套 IF 语句简单得多!还有其他一些不太明显的优点:VLOOKUP 引用表是开放的,易于查看。条件更改后,可轻松更新表值,无需更改公式。如果不希望他人查看或更改引用表,只需将其置于其他工作表。

6

最后,新版本的excel支持更简单的IFS语句,可以大大简化IF判断,方式如下:对于最初的包含 4 个嵌套 IF 函数的成绩示例:=IF(D2>89,'A',IF(D2>79,'B',IF(D2>69,'C',IF(D2>59,'D','F'))))可使用单个 IFS 函数使其变得更简洁:=IFS(D2>89,'A',D2>79,'B',D2>69,'C',D2>59,'D',TRUE,'F')IFS 函数十分有用,因为无需担心所有这些 IF 语句和括号带来的麻烦。

推荐信息