跳至主要内容

IFS() Excel:学会简化多重条件

告别复杂的嵌套 IF() 逻辑。学习使用 IFS() 构建更易读的公式。
· 10分钟 阅读

使用 AI 探索

如果您曾尝试在 Excel 中构建复杂的逻辑公式,您就知道它会多么容易变得杂乱。使用嵌套的 IF() 语句时,最难的是弄清楚每个条件该放在哪里。

这就是 Excel 推出 IFS() 新函数的原因。它能更干净、更简单地检查多个条件,而无需把自己绕晕。我将通过示例和技巧带您了解 IFS() 的工作方式,帮助您自信使用它。

什么是 Excel 中的 IFS() 函数?

IFS() 函数可同时检查多个条件。它会按照您编写的顺序逐一检查条件,并返回第一个为 TRUE 的结果。

因此,它是书写曾经杂乱的嵌套 IF() 公式的更简便方法。与其把多个 IF() 相互嵌套,不如用 IFS() 在同一处列出所有条件。总共您最多可以添加 127 组“条件-结果”对,虽然我怀疑您是否会需要那么多。

IFS() 函数如何工作

其语法为:

=IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2]…)

其中:

  • logical_test1(必需)是第一个条件。

  • value_if_true1(必需)当 logical_test1 为 TRUE 时返回的结果。

  • 其余最多 126 个 logical_test 与 value_if_true 参数为可选。

如何使用 Excel IFS()

IFS() 会根据条件返回不同结果。您可以使用 =、<、>、<= 和 >= 等逻辑运算符来构建逻辑。以下是入门方法。

方式一:使用公式向导

要使用公式向导:

  1. 单击您要插入公式的单元格。

  2. 转到公式选项卡,选择插入函数。

  3. 在搜索框中输入 IFS 并单击执行。

  4. 选择 IFS,单击确定,然后输入您的条件和结果。

  5. 再次单击确定以应用公式。

这是一种无需手动敲公式就能快速构建的方法。

apply IFS() function using the formula wizard in Excel.

使用公式向导应用 IFS() 函数。图片由作者提供。

方式二:手动编写

您也可以手动编写公式。这可能是大多数人的做法。您只需在单元格中键入 =IFS(,然后逐步构建逻辑。假设您要根据送达时间分配运输方式:

  • 如果为 2 天或更少,则为 Express

  • 如果为 3 到 5 天,则为 Standard

对此,公式如下:

=IFS(B2<=2, "Express", B2<=5, "Standard")

Apply the IFS() formula in a cell in Excel.

在单元格中应用 IFS() 公式。图片由作者提供。

您还可以将公式复制到其他单元格。为此,请拖动单元格右下角的小方块(填充柄)。这会将公式应用到整列。或者只需双击它,Excel 会根据数据自动填充。

专业提示:当您复制公式时,Excel 会自动更新单元格引用。如果您希望保持引用不变,请按 F4 键将其设为绝对引用(会将 A1 更改为 $A$1)。

Copy down the formula using a file handle in Excel.

使用填充柄向下复制公式。图片由作者提供

但其中一个单元格会抛出 #N/A 错误,因为没有任何条件被满足。要解决此问题,请在公式末尾添加一个使用 TRUE 的最终条件。这就像备选方案;它会捕获之前未匹配的情况并返回默认结果。

=IFS(B2<=2, "Express", B2<=5, "Standard", TRUE, "Economy")

这样就能消除 #N/A 错误并返回默认值。

Handle #N/A error using the final ELSE condition in Excel  IFS function.

使用最后的 ELSE 条件处理 #N/A 错误。图片由作者提供。

IFS() 实战示例

现在来看一些实际示例,这也是大多数人使用此函数的场景。

成绩评定

您可以使用 IFS() 将学生分数转换为字母等级。假设您有一份学生及其考试分数的列表。您可以使用以下公式将这些数字转换为等级:

=IFS(C5<60,"F", C5<70,"D", C5<80,"C", C5<90,"B", C5>=90,"A")

其作用如下:

  • 分数小于 60,返回 F。

  • 小于 70,返回 D。

  • 小于 80,返回 C。

  • 小于 90,返回 B。

  • 大于等于 90,返回 A。

Excel 会按顺序检查每个条件,并在找到第一个为 TRUE 的条件时停止。即使有多个条件可能适用,也只会计入第一个匹配。

Assign grades to students using IFS() i Excel.

使用 IFS() 为学生评定等级。图片由作者提供。

使用 TRUE 进行错误处理

您也可以用 IFS() 根据不同的状态码显示自定义消息,而不是让 Excel 显示 #N/A 错误。比如,您有一个代码列表,希望基于每个代码显示对应消息,可以使用如下公式:

=IFS(A2=100,"OK", A2=200,"Warning", A2=300,"Error", TRUE,"Invalid")

其工作方式如下:

  • 如果代码为 100,显示 OK。

  • 如果为 200,显示 Warning。

  • 如果为 300,显示 Error。

  • 如果都不匹配,显示 Invalid。

最后这一点很重要。它会根据代码显示相应消息。如果没有精确匹配,最后的 TRUE 条件会作为兜底返回 Invalid。

Show a message based on the code using the IFS() function in Excel.

使用 IFS() 根据代码显示消息。图片由作者提供。

条件文本标签

您还可以使用 IFS() 将项目分到水果、蔬菜或饮品等类别中,便于在新增项目时持续归类。

一个简单的公式如下:

=IFS(A2="Grapes","Fruit", A2="Broccoli","Green Vegetable", A2="Tea","Beverage", TRUE,"Misc")

其作用如下:

  • 如果项目为 Grapes,显示 Fruit。

  • 如果为 Broccoli,显示 Green Vegetable。

  • 如果为 Tea,显示 Beverage。

  • 如果都不匹配,显示 Misc。

最后一行(带 TRUE)是您的备用选项。它会捕获不属于其他类别的任何内容。

Categorize the item using IFS() in Excel.

使用 IFS() 对项目进行分类。图片由作者提供。

财务建模

我们也可以将 IFS() 用于财务建模。来看两个常见示例:

应用折扣阶梯

您可以使用 IFS() 根据客户的总购买金额分配折扣。

=IFS(B2>=500,"20% Discount", B2>=300,"10% Discount", B2>=100,"5% Discount", TRUE,"No Discount")

其工作方式如下:

  • 金额大于等于 500,返回 20% Discount

  • 金额大于等于 300,返回 10% Discount。

  • 金额大于等于 100,返回 5% Discount。

  • 金额小于 100,最后的 TRUE 条件返回 No Discount。

Apply discounts using IFS() in Excel.

使用 IFS() 应用折扣。图片由作者提供。

计算休假天数

您还可以根据员工在公司的年限计算其可享受的休假天数。请使用以下公式:

=IFS(B2>=10,"30 Days", B2>=5,"20 Days", B2>=1,"10 Days", TRUE,"No Leave")

具体如下:

  • 10 年及以上为 30 Days 休假。

  • 5 到 9 年为 20 Days。

  • 1 到 4 年为 10 Days。

  • 不足 1 年为 No Leave。

Assign leave days based on years of service using IFS() in Excel.

根据司龄分配休假天数(IFS())。图片由作者提供。

数据转换

您还可以使用 IFS() 将文件大小从字节转换为更易读的单位,如 KB、MB 或 GB:

=IFS(B2<1024, B2 & " Bytes", B2<1048576, ROUND(B2/1024,1) & " KB", B2<1073741824, ROUND(B2/1048576,1) & " MB", TRUE, ROUND(B2/1073741824,1) & " GB")

该公式会:

  • 1024 以下显示 Bytes

  • 小于 1 MB 显示 KB

  • 小于 1 GB 显示 MB

  • 更大则显示 GB

Convert file size from bytes to KB, MB, GB using IFS() in Excel.

使用 IFS() 将字节转换为 KB、MB、GB。图片由作者提供。

IFS() vs. IF() vs. 嵌套 IF()

在 Excel 中处理多个条件时,您有三种选择:IF()、嵌套 IF(),或 IFS() 函数。每种方式的工作方式不同,下面告诉您如何选择合适的方法。

可读性对比

如果您只检查一到两个条件,基本的 IF() 就很合适。它快速、简单、好用。但当您尝试检查多个条件时,事情就变得复杂。这时我们会把 IF() 层层嵌套,导致公式更难读,也更难在后续修改。

例如:

=IF(A1<60,"F",IF(A1<70,"D",IF(A1<80,"C",IF(A1<90,"B","A"))))

它能用,但不容易看懂。大量的括号让阅读和更新变得困难。

Excel Nested IF() is hard to read and understand

嵌套 IF() 难以阅读和理解。图片由作者提供。 

再看使用 IFS() 的相同逻辑:

=IFS(A1<60,"F", A1<70,"D", A1<80,"C", A1<90,"B", A1>=90,"A")

这看起来清晰得多。每个条件都直接与结果配对,没有嵌套和括号堆叠。所以,如果您想要一个易读、易懂、后期也好维护的公式,IFS() 是很好的选择。

Excel IFS is much easier to read and understand.

IFS() 更易读、易懂。图片由作者提供。

性能考量

IFS() 会检查您提供的每个条件,即便已经找到匹配。也就是说,即使您列出五个条件,Excel 仍会评估全部五个。

但嵌套的 IF() 更“聪明”一些。它使用“短路”机制,即一旦发现第一个为 TRUE 的条件就停止检查。这能在包含大量公式的大型表中稍微节省一些时间。

快速对比:何时用哪一个

下面这张简表可帮助您理解何时使用 IF()、嵌套 IF() 和 IFS():

特性

IF()

嵌套 IF()

IFS()

最佳适用

1–2 个简单条件

复杂逻辑(注重性能)

多个条件(注重可读性)

可读性

非常容易

较难(括号很多)

清晰、易于扫读

后续编辑

简单

可能麻烦(到处是括号)

容易更新

性能

快速

略快(使用短路)

略慢(检查所有条件)

示例用法

基础是/否检查

超大表中的阶梯定价

评分、分类、兜底消息

IFS vs. SWITCH()

IFS() 和 SWITCH() 均可在单个自包含公式中检查多个条件,但工作方式不同。以下是二者的详细对比:

特性

IFS()

SWITCH()

最佳适用

使用逻辑(>、<、=)的不同条件

将一个值与多个精确匹配进行比较

支持逻辑运算符?

是,适合范围或不等式

否,只适用于精确值

语法风格

每次都需重复完整条件

更简洁,因为用一个表达式对比多个值

示例用法

按分数给学生分级(如 90+、75–89...)

将代码映射到类别(如 1 = North,2 = South...)

兜底/默认选项

在末尾使用 TRUE 作为全捕获情况

添加一个最终值(无条件)作为默认

可读性

条件多时可能变长

在比较同一表达式时更简洁

灵活性

高度灵活,可处理不同表达式

灵活性有限,仅对一个表达式的精确匹配

需要注意的事项

在 Excel 中使用 IFS() 时,您需要注意以下几点。

常见错误及其修复

先来看一些您可能会遇到的常见错误。

参数过少

如果我们添加了某个条件,却忘了包含当其为真时应发生什么(value_if_true),Excel 会弹出提示:“您为此函数输入的参数太少”。

#N/A 错误

当公式中的条件没有任何一个为 TRUE 时,会出现 #N/A 错误。Excel 至少需要一个匹配,否则会陷入僵局。如果您不想显示 #N/A,请在末尾添加带有兜底值的 TRUE。

#VALUE! 错误

#VALUE! 错误会在某个 logical_test 参数未返回明确的 TRUE 或 FALSE 时出现。可能是拼写错误,或条件不太正确。无论哪种情况,Excel 都不知道如何处理,因此请仔细检查您的逻辑。

技巧与最佳实践

接下来是一些让您的公式更好、更简单的最佳实践:

  • 尽量保持简单。通常 10 个或更少条件就足够了。

  • 在最后添加以 TRUE 为条件的兜底情况。它能覆盖未满足主要条件的任何情形。

  • 确保每个条件都有对应结果,并且测试能返回 TRUE 或 FALSE。

  • 使用边界值进行测试,例如 0、100,甚至空白单元格,以确保它能按预期处理所有情况。

优缺点

IFS() 有不少优点,但也有一些需要留意的点。

优点

缺点

比嵌套 IF() 更简洁、易读

不使用短路机制——即使已匹配仍会检查所有条件

支持最多 127 个条件

需要手动添加 TRUE 兜底

更易调试并跟踪复杂逻辑

仅适用于 Excel 2016 或更高版本

总结

IFS() 函数是一种在不让公式变得杂乱的情况下检查多个条件的好方法。它比把多个 IF() 相互嵌套更易阅读,也让逻辑更加清晰。请务必按正确顺序列出条件,并始终在末尾添加使用 TRUE 的兜底选项——这样即使没有匹配,您的公式也不会出错。

如果您的逻辑可预测且遵循清晰规则,IFS() 是让工作表保持整洁、易于管理的绝佳方式。

Laiba Siddiqui

作者

Laiba Siddiqui

我是内容策略专家,热衷于将复杂主题化繁为简。我曾帮助 Splunk、Hackernoon 和 Tiiny Host 等公司为其受众打造兼具吸引力与信息量的内容。

Excel IFS() 常见问题

我可以将 IFS() 与 AND() 或 OR() 等其他函数组合使用吗?

可以,您可以在 IFS() 公式中组合使用 AND() 和 OR() 函数,以使条件更具体或更灵活。

例如,可以根据单元格 A1 中数字的取值范围,将其归类为 Low、Medium 或 High。

=IFS(AND(A1 > 0, A1 <= 10), "Low", AND(A1 > 10, A1 <= 20), "Medium", TRUE, "High")
IFS() 函数支持日期比较吗?

可以,您可以像比较数字一样,使用逻辑运算符比较日期值:

=IFS(A1<TODAY(), "Past", A1=TODAY(), "Today", A1>TODAY(), "Future")

主题