IF 函数 - 嵌套公式和避免错误
2025-05-26 00:26:39 拉莫斯世界杯
更多示例
下面是一个十分常见的示例 - 根据销售额等级计算销售佣金
=IF(C9>15000,20%,IF(C9>12500,17.5%,IF(C9>10000,15%,IF(C9>7500,12.5%,IF(C9>5000,10%,0)))))
此公式表示如果 (C9 大于 15,000 则返回 20%,如果 (C9 大于 12,500 则返回 17.5% 等等…
虽然它与以前的成绩示例非常相似,但此公式是维护大型 IF 语句难度的一个很好的例子 - 如果你的组织决定添加新的薪酬水平,甚至可能更改现有的美元或百分比值,你需要做什么? 你手上会有很多工作!
提示: 为了使长公式更易于阅读,可在编辑栏中插入换行符。 只需在将文本换到新行前按 Alt+Enter。
下面是一个包含混乱逻辑的佣金方案示例:
你能看出有什么问题吗? 将销售额比较的顺序与上一示例的顺序进行比较。 此示例用的是哪种方式? 没错,它从下到上 (5,000美元到15,000美元) ,而不是相反。 但为什么说这是个大问题? 这是一个大问题,因为公式不能通过第一次评估超过 5,000 美元的任何值。 假设你的收入为 12,500 美元,IF 对帐单将返回 10%,因为它大于 5,000 美元,并且会停止。 这非常有问题,因为在许多情况下,这些类型的错误在产生负面影响之前不会受到忽视。 既然知道复杂嵌套 IF 语句具有严重缺陷,你能做些什么? 在大多数情况下,可使用 VLOOKUP 函数,而不是使用 IF 函数构建复杂公式。 若要使用 VLOOKUP,首先需要创建一个引用表:
=VLOOKUP(C2,C5:D17,2,TRUE)
此公式表示在 C5:C17 区域中查找 C2 的值。 如果找到值,则从 D 列的同一行返回相应值。
=VLOOKUP(B9,B2:C6,2,TRUE)
类似地,此公式将在 B2:B22 区域中查找单元格 B9 的值。 如果找到值,则从 C 列的同一行返回相应值。
注意: 这两个 VLOOKUP 公式在公式末尾使用 TRUE 参数,这表示需要它们查找适当的匹配项。 也就是说,它将匹配查找表中的精确值以及范围内的任何值。 在这种情况下,查找表需要按升序排序(从小到大)。
此处详细介绍了 VLOOKUP,但这比 12 级复杂嵌套 IF 语句要简单得多! 还有其他一些不太明显的优点:
VLOOKUP 引用表是开放的,易于查看。
条件更改后,可轻松更新表值,无需更改公式。
如果不希望他人看到或干扰参考表,只需将其放在另一张工作表上即可。