Table of contents
在这篇文章中,你将学习如何为不同类型的值建立一个Excel IF语句,以及如何创建多个IF语句。
IF是Excel中最流行和最有用的函数之一。 一般来说,你使用IF语句来测试一个条件,如果满足条件,则返回一个值,如果不满足条件,则返回另一个值。
在本教程中,我们将学习Excel IF函数的语法和常见用法,然后仔细看看公式实例,希望对初学者和有经验的用户都有帮助。
Excel中的IF函数
IF是逻辑函数之一,它评估一个特定的条件,如果条件为 "真 "则返回一个值,如果条件为 "假 "则返回另一个值。
IF函数的语法如下。
IF(logical_test, [value_if_true], [value_if_false])如你所见,IF总共需要3个参数,但只有第一个是必须的,其他两个是可选的。
逻辑_测试 (required) - 要测试的条件。 可以被评估为TRUE或FALSE。
价值_如果是真的 (可选) - 当逻辑测试评估为TRUE时,即满足条件时,要返回的值。 如果省略,则为 value_if_false 参数必须被定义。
价值_如果是假的 (可选) - 当逻辑测试结果为FALSE,即条件不满足时返回的值。 如果省略,则为 value_if_true 参数必须被设置。
Excel中的基本IF公式
要创建一个简单的 如果那时 语句,这是你需要做的。
- 对于 逻辑_测试 编写一个返回 "真 "或 "假 "的表达式。 为此,你通常会使用逻辑运算符之一。
- 对于 value_if_true ,指定当逻辑测试评估为 "true "时要返回什么。
- 对于 value_if_false ,指定当逻辑测试评估为FALSE时返回什么。 虽然这个参数是可选的,但我们建议总是配置它以避免意外的结果。 详细解释,请参见Excel IF:需要知道的事情。
作为一个例子,让我们写一个非常简单的IF公式,检查A2单元格中的一个值,如果该值大于80,则返回 "好",否则返回 "坏"。
=IF(B2>80, "好", "坏")
这个公式到了C2,然后向下复制到C7。
如果你希望只在满足(或不满足)条件时返回一个值,否则什么都不返回,那么就用一个空字符串("")作为 "未定义 "参数。 例如。
=IF(B2>80, "好", "")
如果A2中的值大于80,这个公式将返回 "好",否则就是一个空白单元格。
Excel的If then公式:需要知道的事情
虽然IF函数的最后两个参数是可选的,但如果你不知道底层逻辑,你的公式可能产生意想不到的结果。
如果省略了value_if_true
如果你的Excel IF公式的第2个参数被省略了(即逻辑测试后有两个连续的逗号),当条件得到满足时,你会得到0(0),这在大多数情况下是没有意义的。 以下是这样一个公式的例子。
=IF(B2>80, , "坏")
要返回一个空白单元格,请为第二个参数提供一个空字符串(""),像这样。
=IF(B2>80, "", "坏")
下面的截图展示了区别。
如果省略value_if_false的话
省略IF的第3个参数,当逻辑测试评估为FALSE时,将产生以下结果。
如果只有一个封闭的括号在 value_if_true 很出乎意料,不是吗? 下面是这样一个公式的例子。
=IF(B2>80, "好" )
在 value_if_true 参数将迫使Excel返回0,这也没有什么意义。
=IF(B2>80, "好",)
最合理的方法是使用一个零长度的字符串(""),在不满足条件时获得一个空白单元格。
=IF(B2>80, "好", "")
提示:当指定的条件满足或不满足时,要返回一个逻辑值,为 "TRUE "提供 value_if_true 和FALSE为 value_if_false 为了使结果成为其他Excel函数可以识别的布尔值,不要把TRUE和FALSE用双引号括起来,因为这样会把它们变成正常的文本值。
在Excel中使用IF函数--公式实例
现在你已经熟悉了IF函数的语法,让我们看看一些公式的例子,学习如何使用 如果那时 在现实生活场景中的声明。
Excel的IF函数与数字
要建立一个数字的IF语句,使用逻辑运算符,如:。
- 等于(=)。
- 不等于()。
- 大于 (>)
- 大于或等于(>=)。
- 小于 (<)
- 小于或等于(<=)。
上面,你已经看到了这样一个公式的例子,它检查一个数字是否大于一个给定的数字。
这里有一个公式,可以检查一个单元格是否包含一个 负数 :
=IF(B2<0, "Invalid", "" )
对于负数(小于0),该公式返回 "无效";对于零和正数--一个空白单元。
Excel的IF函数与文本
通常,你为文本值写一个IF语句,使用 "等于 "或 "不等于 "操作符。
例如,以下公式检查 交付状态 在B2,以确定是否需要采取行动。
=IF(B2="交付", "不", "是")
翻译成简单的英语,该公式说:如果B2等于 "交付",返回 "否",否则返回 "是"。
实现同样结果的另一种方法是使用 "不等于 "运算符,将 value_if_true 和 value_if_false 价值。
=IF(C2 "交付", "是", "否")
注意事项。
- 当为IF的参数使用文本值时,记住一定要把它们括在 双引号 .
- 像大多数其他Excel函数一样。 默认情况下,IF是不区分大小写的 在上述例子中,它没有区分 "delivered"、"Delivered "和 "DELIVERED"。
对文本值进行区分大小写的IF语句
要将大写字母和小写字母作为不同的字符处理,请将IF与区分大小写的EXACT函数结合使用。
例如,要想只在B2包含 "DELIVERED"(大写字母)时返回 "No",你要使用这个公式。
=IF(EXACT(B2, "DELIVERED"), "否", "是")
如果单元格包含部分文本
在你想以下列条件为基础的情况下 部分匹配 而不是完全匹配,立即想到的解决方案是在逻辑测试中使用通配符。 然而,这种简单而明显的方法是行不通的。 许多函数接受通配符,但遗憾的是IF不是其中之一。
一个可行的解决方案是将IF与ISNUMBER和SEARCH(不区分大小写)或FIND(区分大小写)结合使用。
例如,如果 "已交付 "和 "待交付 "的项目都需要 "不 "的操作,下面的公式会很有效。
=IF(ISNUMBER(SEARCH("delivery", B2)), "No", "Yes")
欲了解更多信息,请参见。
- Excel的IF语句用于部分文本匹配
- 如果单元格包含,那么
Excel带日期的IF语句
乍一看,似乎日期的IF公式与数字和文本值的IF语句相似。 遗憾的是,事实并非如此。 与许多其他函数不同,IF在逻辑测试中识别日期,并将它们解释为单纯的文本字符串。 换句话说,你不能以 "1/1/2020 "或">1/1/2020 "的形式提供一个日期。 为了使IF函数识别一个日期,你需要将其包裹在DATEVALUE函数。
例如,这里你可以检查一个给定的日期是否大于另一个日期。
=IF(B2>DATEVALUE("7/18/2022"), "即将到来", "已完成")
这个公式评估B列中的日期,如果游戏计划在2022年7月18日或之后进行,则返回 "即将开始",如果是之前的日期则返回 "已完成"。
当然,没有什么能阻止你在预定义的单元格(比如E2)中输入目标日期并引用该单元格。 只要记住用$符号锁定单元格地址,使其成为绝对引用。 例如::
=IF(B2>$E$2, "即将到来", "已完成")
要将一个日期与 当前日期 ,使用TODAY()函数。 例如。
=IF(B2>TODAY(), "即将到来", "已完成")
Excel IF语句中的空白和非空白
如果你想根据某个单元格为空或不为空,以某种方式标记你的数据,你可以选择。
- 将IF函数与ISBLANK一起使用,或
- 使用逻辑表达式(等于空白)或""(不等于空白)。
下表用公式例子解释了这两种方法的区别。
逻辑性测试 | 描述 | 公式示例 | |
空白单元格 | ="" | 如果一个单元格在视觉上是空的,评估为 "true",即使它包含一个 零长度的字符串 . 否则,评估为FALSE。 | =if(a1="", 0, 1) |
如果A1是视觉上的空白,则返回0。 否则返回1。
如果A1包含一个空字符串(""),该公式返回0。
如果一个单元格含有 绝无仅有 - 没有公式,没有空格,没有空字符串。
否则,评估为FALSE。
如果A1是绝对空的,返回0,否则返回1。
如果A1包含一个空字符串(""),该公式返回1。
细胞有 零长度的字符串 被认为是 空白 .
如果A1为非空白,返回1;否则返回0。
如果A1包含一个空字符串,该公式返回0。
细胞有 零长度的字符串 被认为是 非空白 .
作用与上述公式相同,但如果A1包含一个空字符串,则返回1。
现在,让我们看看空白和非空白的IF语句的作用。 假设你在B列有一个日期,只有当一个游戏已经被玩过的时候。 为了标记已完成的游戏,使用这些公式之一。
=IF(B2="", "", "已完成")
=IF(ISBLANK(B2), "", "已完成")
=IF($B2"", "已完成", "")
=IF(ISBLANK($B2)=FALSE, "已完成", "" )
如果被测试的单元格没有零长度的字符串,所有的公式将返回完全相同的结果。
检查两个单元格是否相同
要创建一个检查两个单元格是否匹配的公式,通过在IF的逻辑测试中使用等号(=)来比较这些单元格。 例如。
=IF(B2=C2, "相同分数", "" )
要检查两个单元格是否包含相同的文本,包括字母的大小写,在EXACT函数的帮助下使你的IF公式对大小写敏感。
例如,要比较A2和B2中的密码,如果两个字符串完全相同,则返回 "匹配",否则返回 "不匹配",公式为:。
=IF(EXACT(A2, B2), "匹配", "不匹配")
IF然后公式来运行另一个公式
在前面所有的例子中,Excel的IF语句都返回了数值。 但它也可以在满足或不满足某个特定条件时执行某种计算或执行另一个公式。 为此,在 value_if_true 和/或 value_if_false 争论。
例如,如果B2大于80,我们会让它乘以7%,否则乘以3%。
=IF(B2>80, B2*7%, B2*3%)
Excel中的多个IF语句
从本质上讲,有两种方法可以在Excel中编写多个IF语句。
- 将几个IF函数嵌套在一起
- 在逻辑测试中使用AND或OR函数
嵌套的IF语句
嵌套IF函数让你在同一个单元格中放置多个IF语句,即在一个公式中测试多个条件,并根据测试结果返回不同的值。
假设你的目标是根据分数来分配不同的奖金。
- 90岁以上 - 10%
- 90至81 - 7%
- 80至70 - 5%
- 低于70 - 3%
为了完成这个任务,你要写3个独立的IF函数,并像这样把它们一个个嵌套起来。
=IF(B2>90, 10%, IF(B2>=81, 7%, IF(B2>=70, 5%, 3%))
更多公式实例,请参见。
- Excel嵌套IF公式
- 嵌套的IF函数:例子、最佳实践和替代方案
有多个条件的Excel IF语句
要用AND或OR逻辑评估几个条件,在逻辑测试中嵌入相应的函数。
- 和 - 将返回TRUE,如果 所有 的条件得到满足。
- OR - 将返回TRUE,如果 任何 的条件得到满足。
例如,如果B2和C2的分数都高于80分,要返回 "通过",公式是:。
=IF(AND(B2>80, C2>80), "通过", "失败")
如果其中一个分数高于80分,要获得 "通过",公式是:。
=IF(OR(B2>80, C2>80), "通过", "失败")
欲了解完整的细节,请访问。
- Excel中的IF和公式
- Excel IF OR函数与公式实例
如果在Excel中出现错误
从Excel 2007开始,我们有一个特殊的函数,名为IFERROR,用来检查公式的错误。 在Excel 2013及以上版本中,还有IFNA函数来处理#N/A错误。
而且,在某些情况下,将IF函数与ISERROR或ISNA一起使用可能是更好的解决方案。 基本上,IF ISERROR是当你想在出错时返回一些东西,在没有出错时返回其他东西时使用的公式。 IFERROR函数无法做到这一点,因为它总是返回主公式的结果,如果它不是一个错误。
例如,要将B列中的每个分数与E2:E4中的前3个分数进行比较,如果发现匹配,则返回 "是",否则返回 "否",你在C2中输入这个公式,然后向下复制到C7。
=IF(ISERROR(MATCH(B2, $E$2:$E$4, 0)), "否", "是" )
更多信息,请参见Excel中的IF ISERROR公式。
希望我们的例子能帮助你掌握Excel IF的基础知识。 感谢你的阅读,希望下周能在我们的博客上见到你。
实践工作手册
Excel IF 语句--公式示例(.xlsx文件)