更多示例

下面是一个十分常见的示例 - 根据销售额等级计算销售佣金

if函数嵌套 Java if函数嵌套怎样输入_升序

=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。

下面是一个包含混乱逻辑的佣金方案示例:

if函数嵌套 Java if函数嵌套怎样输入_换行符_02

发现问题了吗? 将销售额比较的顺序与上一示例的顺序进行比较。 此示例用的是哪种方式? 此示例采用自下而上(从 5,000 美元到 15,000 美元)而不是自上而下的方式。 但为什么说这是个大问题? 因为公式无法通过对任何超过 5,000 美元的值的第一次求值。 假设销售额为 12,500 美元 - IF 语句将返回 10%,因为该值大于 5,000 美元,所以公式将在此处停止。 此类问题很严重,因为在许多情况下,此类错误容易被忽视,直到产生负面影响才会被发现。 既然知道复杂嵌套 IF 语句具有严重缺陷,你能做些什么? 在大多数情况下,可使用 VLOOKUP 函数,而不是使用 IF 函数构建复杂公式。 若要使用 VLOOKUP,首先需要创建一个引用表:

if函数嵌套 Java if函数嵌套怎样输入_换行符_03

=VLOOKUP(C2,C5:D17,2,TRUE)

此公式表示在 C5:C17 区域中查找 C2 的值。 如果找到值,则从 D 列的同一行返回相应值。

if函数嵌套 Java if函数嵌套怎样输入_if函数嵌套 Java_04

=VLOOKUP(B9,B2:C6,2,TRUE)

类似地,此公式将在 B2:B22 区域中查找单元格 B9 的值。 如果找到值,则从 C 列的同一行返回相应值。

注意: 这两个 VLOOKUP 公式在公式末尾使用 TRUE 参数,这表示需要它们查找适当的匹配项。 也就是说,它将匹配查找表中的精确值以及范围内的任何值。 在这种情况下,查找表需要按升序排序(从小到大)。

此处更详细地介绍了 VLOOKUP,但这肯定比 12 级复杂嵌套 IF 语句简单得多! 还有其他一些不太明显的优点:

VLOOKUP 引用表是开放的,易于查看。

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

如果不希望他人查看或更改引用表,只需将其置于其他工作表。