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 引用表是开放的,易于查看。

条件更改后,可轻松更新表值,无需更改公式。

如果不希望他人看到或干扰参考表,只需将其放在另一张工作表上即可。