09逻辑函数
09x01 AND 函数
AND 函数,是一个逻辑函数,用于确定测试中的所有条件是否均为 TRUE。
AND 函数的一种常见用途就是扩展执行逻辑测试的其他函数的效用。 例如,IF 函数用于执行逻辑测试,它在测试的计算结果为 TRUE 时返回一个值,在测试的计算结果为 FALSE 时返回另一个值。 通过将 AND 函数用作 IF 函数的 logical_test 参数,可以测试多个不同的条件,而不仅仅是一个条件。
语法
AND(logical1, [logical2], …)
参数 | 说明 |
---|---|
Logical1 必需 | 第一个想要测试且计算结果可为 TRUE 或 FALSE 的条件。 |
Logical2, …可选 | 其他想要测试且计算结果可为 TRUE 或 FALSE 的条件(最多 255 个条件)。 |
注意:
- 参数的计算结果必须是逻辑值(如 TRUE 或 FALSE),或者参数必须是包含逻辑值的数组或引用。
- 如果数组或引用参数中包含文本或空白单元格,则这些值将被忽略。
- 如果指定的区域不包含逻辑值,则 AND 函数将返回 #VALUE! 错误。
09x02 FALSE 函数
返回逻辑值 FALSE。
语法
FALSE
FALSE 函数语法没有参数。
注意:
- 也可以直接在工作表或公式中输入文字 FALSE,Microsoft Excel 会自动将它解释成逻辑值 FALSE。 提供 FALSE 函数的目的主要是为了与其他电子表格程序兼容。
- =FALSE 和 =FALSE()效果相同,加不加括号不影响。
09x03 IF 函数
IF 函数是 Excel 中最常用的函数之一,它可以对值和期待值进行逻辑比较。
语法
09x04 IFERROR 函数
可以使用 IFERROR 函数捕获和处理公式中的错误。 如果公式的计算结果为错误值,则 IFERROR 返回您指定的值;否则,它将返回公式的结果。
语法
IFERROR(value, value_if_error)
参数 | 说明 |
---|---|
value 必需 | 检查是否存在错误的参数 |
value_if_error 必需 | 公式计算错误时返回的值。 计算以下错误类型: #N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?或 #NULL!。 |
注意:
- 如果 value 或 value_if_error 为空单元格,IFERROR 将其视为空字符串值("")。
- 如果 value 是数组公式,则 IFERROR 返回值中指定的区域中每个单元格的结果数组。 请参阅下面的第二个例子。
例子1:
配额 | 销售数量 | |
---|---|---|
210 | 35 | |
55 | 0 | |
23 | ||
公式 | 说明 | 结果 |
=IFERROR(A2/B2,“计算中有错误”) | 检查第一个参数中公式的错误(210 除以 35),未找到错误,返回公式结果 | 6 |
=IFERROR(A3/B3,“计算中有错误”) | 检查第一个参数中公式的错误(55 除以 0),找到被 0 除错误,返回 value_if_error | 计算中有错误 |
=IFERROR(A4/B4,“计算中有错误”) | 检查第一个参数中公式的错误("" 除以 23),未找到错误,返回公式结果。 | 0 |
例子2:
配额 | 销售数量 | |
---|---|---|
210 | 35 | |
55 | 0 | |
23 | ||
数组公式(excel会自动加{}) | 说明 | 结果 |
=IFERROR(A2:A4/B2:B4,“计算中有错误”) | 检查数组中第一个元素的第一个参数中的公式中的错误(A2/B2 即 210 除以 35),未找到错误,返回公式结果 | 6 |
=IFERROR(A2:A4/B2:B4,“计算中有错误”) | 检查数组中第二个元素的第一个参数中的公式中的错误(A3/B3 即 55 除以 0),找到被 0 除错误,返回 value_if_error | 计算中有错误 |
=IFERROR(A2:A4/B2:B4,“计算中有错误”) | 检查数组中第三个元素的第一个参数中的公式中的错误(A4/B4 即 “” 除以 23),未找到错误,返回公式结果 | 0 |
09x05 IFNA 函数
如果公式返回错误值 #N/A,则结果返回您指定的值;否则返回公式的结果。
语法
IFNA(value, value_if_na)
参数 | 说明 |
---|---|
value 必需 | 用于检查错误值 #N/A 的参数。 |
value_if_na 必需 | 公式计算结果为错误值 #N/A 时要返回的值。 |
注意:
- 如果 Value 或 Value_if_na 是空单元格,则 IFNA 将其视为空字符串值 ("")。
- 如果 Value 是数组公式,则 IFNA 为 Value 中指定区域的每个单元格以数组形式返回结果。
例子:
公式 | 说明 | 结果 |
---|---|---|
=IFNA(VLOOKUP(“西雅图”,$A 5 : 5: 5:B$10,0),“未找到”) | IFNA 检验 VLOOKUP 函数的结果。 因为在查找区域中找不到西雅图,VLOOKUP 将返回错误值 #N/A。 IFNA 在单元格中返回字符串“未找到”,而不是标准 #N/A 错误值。 | 未找到 |
区域 ID | 城市 | |
亚特兰大 | 105 | |
波特兰 | 142 | |
芝加哥 | 175 | |
洛杉矶 | 251 | |
博伊西 | 266 | |
克里夫兰 | 275 |
09x06 IFS 函数
2019版office才有此函数,IFS 函数检查是否满足一个或多个条件,且返回符合第一个 TRUE 条件的值。 IFS 可以取代多个嵌套 IF 语句,并且有多个条件时更方便阅读。
语法
IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], [logical_test3, value_if_true3],…)
参数 | 说明 |
---|---|
logical_test1 必需 | 计算结果为 TRUE 或 FALSE 的条件。 |
value_if_true1 必需 | 当 logical_test1 的计算结果为 TRUE 时要返回结果。 可以为空。 |
logical_test2…logical_test127 可选 | 计算结果为 TRUE 或 FALSE 的条件。 |
value_if_true2…value_if_true127 可选 | 当 logical_testN 的计算结果为 TRUE 时要返回结果。 每个 value_if_trueN 对应于一个条件 logical_testN。 可以为空。 |
注意:
- 由于函数最多可包含 254 个参数,IFS 函数允许测试最多 127 个不同的条件。 但不建议在 IF 或 IFS 语句中嵌套过多条件。 这是因为多个条件需要按正确顺序输入,并且可能非常难构建、测试和更新。
- 若要指定默认结果,请对最后一个 logical_test 参数输入 TRUE。 如果不满足其他任何条件,则将返回相应值。 在例子1中,行 6 和行 7(成绩为 58)展示了这一结果。
- 如果提供了 logical_test 参数,但未提供相应的 value_if_true,则此函数显示“你为此函数输入的参数过少”错误消息。
- 如果 logical_test 参数经计算解析为 TRUE 或 FALSE 以外的值,则此函数返回 #VALUE! 错误。
- 如果找不到 TRUE 条件,则此函数返回 #N/A! 错误。
例子1:
单元格 A2:A6 的公式如下为:
=IFS(A2>89,“A”,A2>79,“B”,A2>69,“C”,A2>59,“D”,TRUE,“F”)
也即如果(A2 大于 89,则返回“A”,如果 A2 大于 79,则返回“B”并以此类推,对于所有小于 59 的值,返回“F”)。
例子2:
单元格 G7 中的公式是
=IFS(F2=1,D2,F2=2,D3,F2=3,D4,F2=4,D5,F2=5,D6,F2=6,D7,F2=7,D8)
也即如果(单元格 F2 中的值等于 1,则返回的值位于单元格 D2,如果单元格 F2 中的值等于 2,则返回的值位于单元格 D3,并以此类推,如果其他条件均不满足,则最后返回的值位于 D8)。
09x07 NOT 函数
NOT 函数会对其参数的值进行求反。
NOT 函数的一个常见用途是扩展执行逻辑测试的其它函数的有效性。 例如,IF 函数将执行逻辑测试,并在计算结果为 TRUE 时返回一个值,在计算结果为 FALSE 时返回另一个值。 通过将 NOT 函数作为 IF 函数的 logical_test 参数,你可以测试众多而不仅是单个条件。
语法
NOT(logical)
参数 | 说明 |
---|---|
logical 必需 | 计算结果为 TRUE 或 FALSE 的任何值或表达式。 |
09x08 OR 函数
如果 OR 函数的任意参数计算为 TRUE,则其返回 TRUE;如果其所有参数均计算机为 FALSE,则返回 FALSE。
OR 函数的一个常见用途是扩展执行逻辑测试的其他函数的有效性。 例如,IF 函数会执行逻辑测试,并在测试计算为 TRUE 时返回一个值,在测试计算为 FALSE 时返回另一个值。 通过将 OR 函数用作 IF 函数的 logical_test 参数,可测试多个不同条件(而非一个)。
语法
OR(logical1, [logical2], …)
参数 | 说明 |
---|---|
Logical1 必需 | 第一个想要测试且计算结果可为 TRUE 或 FALSE 的条件。 |
Logical2 可选 | 其他想要测试且计算结果可为 TRUE 或 FALSE 的条件(最多 255 个条件)。 |
注意:
- 参数必须计算为逻辑值,如 TRUE 或 FALSE,或者为包含逻辑值的数组或引用。
- 如果数组或引用参数中包含文本或空白单元格,则这些值将被忽略。
- 如果指定的范围不包含逻辑值,则 OR 返回 #VALUE! 错误值。
- 可使用 OR 数组公式来查看数组中是否出现某个值。 若要输入数组公式,请按 CTRL+SHIFT+ENTER。
09x09 SWITCH 函数
2016版office才有此函数,SWITCH 函数根据值列表计算一个值(称为表达式),并返回与第一个匹配值对应的结果。 如果不匹配,则可能返回可选默认值。
语法
SWITCH(expression, value1, result1, [default or value2, result2],…[default or value126, result126])
参数 | 说明 |
---|---|
expression 必需 | 表达式是将与 value1…value126 比较的值(如数字、日期或某些文本)。 |
value1…value126 | ValueN 的值将与表达式比较。 |
result1…result126 | ResultN 是在对应 valueN 参数与表达式匹配时返回的值。 必须为每个对应 valueN 参数提供 ResultN。 |
default 可选 | Default 是当在 valueN 表达式中没有找到匹配值时要返回的值。 当没有对应的 resultN 表达式时,则标识为 Default 参数(请参阅示例)。 Default 必须是函数中的最后一个参数。 |
注意:
- 由于函数最多可包含 254 个参数,所以最多可以使用 126 对值和结果参数。
- 如果没有匹配值,且未提供默认参数,则 SWITCH 函数返回 #N/A! 错误。
例子:
09x10 TRUE 函数
返回逻辑值 TRUE。 希望基于条件返回值 TRUE 时,可使用此函数.
语法
TRUE()
TRUE 函数语法没有参数。
注意:
- 也可以直接在工作表或公式中输入文字 TRUE,Microsoft Excel 会自动将它解释成逻辑值TRUE。 提供 TRUE函数的目的主要是为了与其他电子表格程序兼容。
- =TRUE和 =TRUE()效果相同,加不加括号不影响。
09x11 XOR 函数
XOR函数返回所有参数的逻辑异或。异或运算即结果相同为0,结果相异为1。
语法
XOR(logical1, [logical2],…)
参数 | 说明 |
---|---|
Logical1 必需 | 逻辑值、数组或引用 |
Logical2-254 可选 | 您要检验的 2 至 254 个条件,可为 TRUE 或 FALSE,且可为逻辑值、数组或引用。 |
注意:
参数必须计算为逻辑值,如 TRUE 或 FALSE,或者为包含逻辑值的数组或引用。
如果数组或引用参数中包含文本或空白单元格,则这些值将被忽略。
如果指定的区域中不包含逻辑值,则 XOR 返回错误值 #VALUE! 。
您可以使用 XOR 数组公式检查数组中是否出现某个值。
当logical输入中TRUE 的数字为奇数时,XOR 的结果为 TRUE;当 TRUE 输入的数字为偶数时,XOR 的结果为 FALSE。