逻辑函数
逻辑函数是公式中的一种函数类型,可以对数据进行逻辑运算。
IF()
判断是否满足某个条件,如果满足则返回第一个值,如果不满足则返回第二个值。
IF(logical, value1, value2)
参数说明
logical:是判断条件,该判断条件的表达式会输出真( true )和假( false )两种值。 value1:是当判断条件为真( true )时的返回值。 value2:是当判断条件为假( false )时的返回值。
注①:IF()
支持嵌套使用,并且可以用于检查单元格是否为空。
示例
// 对数值进行比较,例如下例 {成绩} 字段为数字类型且单元格值为 80 时:
公式:IF({成绩} > 60, "及格", "不及格")
运算结果:"及格"
// 对文本进行比较,例如下例 {任务进度} 字段为单选类型且单元格值为 "已完成" 时:
公式:IF({任务进度} = "已完成", "done", "in progress")
运算结果:"done"
// 对日期进行比较,例如下例 {截止时间} 字段为日期类型且单元格值晚于今天:
公式:IF(IS_AFTER({截止时间},TODAY()), "未过期", "已过期")
运算结果:"未过期"
// 判断空值,例如下例 {文章内容} 字段为文本类型且单元格值为空时:
公式:IF({文章内容} = BLANK(), "为空", "已撰写")
运算结果:"为空"
// 嵌套多层判断条件。例如下例 {成绩} 字段为数字类型,且单元格值为 70 时:
公式:IF({成绩} > 60, IF({成绩} < 80, "中等", "优秀"), "不及格")
运算结果:"中等"
// 多个判断条件同时成立就输出真。例如下例 {成绩} 字段为数字类型,且单元格值为 90 时:
公式:IF({成绩} > 80 && {成绩} <= 100, "优秀", "其他")
运算结果:"优秀"
// 多个判断条件只要有一个成立就输出真。例如下例 {成绩} 字段为数字类型且单元格值为 70 ,{才艺} 字段为文本类型且单元格值为 "A" 时:
公式:IF({成绩} > 80 || {才艺} = "A", "优秀", "其他")
运算结果:"优秀"
SWITCH()
本函数为多分支选择函数,它由表达式 + 多个(分支 + 返回值)组成,如果表达式等于某个分支值,则函数输出该分支对应的返回值。
SWITCH(expression, [pattern, result… ],[default])
参数说明
expression:是表达式,其运算的结果会与每个分支进行匹配。 pattern:是分支,每个分支表示表达式的可能运算结果。每一个分支都有对应的返回值。 result:是返回值,如果表达式的运算结果匹配了一个分支,则输出对应的返回值。 default:非必填,是默认值,如果运算结果没有匹配任何一个分支,则函数输出默认值。默认值未填写时为空值。
注①:[pattern, result… ] 表示可以填写多个分支和返回值的组合。
示例
// 匹配文本值。下列中第一个 "C" 是 expression 即表达式。 "A" 和 "优秀" 分别是一组的 pattern 和 result,它表示如果 expression 为 "A" 时就输出 "优秀"。
公式:SWITCH("C", "A", "优秀", "B", "中等", "C", "普通", "D", "较差", "没有成绩")
运算结果:"普通"
// 匹配文本类型字段 {评分} 中的值。当单元格内值为 "C" 时:
公式:SWITCH({评分}, "A", "优秀", "B", "中等", "C", "普通", "D", "较差", "没有成绩")
运算结果:"普通"
// 和 IF() 函数一起搭配使用。下列字段 {国家}、{地区}为文本类型且单元格内值为 "中国"、"广东"时:
公式:SWITCH({国家}, "中国", IF({地区}="广东", "粤语", "其他"), "俄国", "俄语", "法国", "法语", "其他")
运算结果:"粤语"
TRUE()
返回逻辑值真( true )。
TRUE()
参数说明
该函数不需要填写参数。
该函数可以判断勾选类型的维格列是否为 “已选中状态” ,见例子一; 该函数和
FALSE()
一起使用可以输出为真和假的布尔值,见例子二。
示例
// 判断勾选类型的字段的状态。例如下列 {是否完成} 字段为勾选类型且单元格值为 "已勾选"时:
公式:IF({是否完成} = TRUE(), "已完成", "未完成")
运算结果:"已完成"
// TRUE() 和 FALSE() 一起使用输出布尔值。例如下列 {成绩} 字段为数字类型且单元格值为70 时:
公式:IF({成绩} > 60, TRUE(), FALSE())
运算结果:true
FALSE()
返回逻辑值假( false )。
FALSE()
参数说明
该函数不需要填写参数。
该函数可以判断勾选类型的维格列是否为 “未选中状态” ,见例子一; 该函数和
TRUE()
一起使用可以输出为真和假的布尔值,见例子二。
示例
// 判断勾选类型的字段的状态。例如下列 {是否完成} 字段为勾选类型且单元格值为 "未勾选"时:
公式:IF({是否完成} = FALSE(), "未完成", "已完成")
运算结果:"未完成"
// TRUE() 和 FALSE() 一起使用输出布尔值。例如下列 {成绩} 字段为数字类型且单元格值为50 时:
公式:IF({成绩} > 60, TRUE(), FALSE())
运算结果:false
AND()
如果所有参数均为真( true ),则返回真( true ),否则返回假( false )。
AND(logical1, [logical2, …])
参数说明
logical:是一个或多个逻辑条件。
示例
// 多个逻辑条件为真(true)时,输出真(true)。
公式:AND(3 > 2, 4 > 3)
运算结果:true
// 多个逻辑条件的其中一个不为真(true)时,输出假(false)。
公式:AND(3 > 2, 4 < 3)
运算结果:false
// 判断数值类型的字段是否都满足逻辑条件。例如下列字段 {数学成绩} 和 {语文成绩} 都是数字类型且单元格值分别为 70、80 时:
公式:AND({数学成绩} > 60, {语文成绩} > 60)
运算结果:true
// 作为IF() 函数的判断条件使用。例如下列字段 {数学成绩} 和 {语文成绩} 都是数字类型且单元格值分别为 70、80 时:
公式:IF(AND({数学成绩} > 60, {语文成绩} > 60), "合格", "不合格")
运算结果:"合格"
OR()
如果任何一个参数为真( true ),则返回真( true ),否则返回假( false )。
OR(logical1, [logical2, …])
参数说明
logical:是一个或多个逻辑条件。
示例
// 多个逻辑条件为真(true)时,输出真(true)。
公式:OR(3 > 2, 4 > 3)
运算结果:true
// 多个逻辑条件的其中一个不为真(true)时,输出真(true)。
公式:OR(3 > 2, 4 < 3)
运算结果:true
// 多个逻辑条件全部都不为真(true)时,输出假(false)。
公式:OR(3 < 2, 4 < 3)
运算结果:false
// 判断数值类型的字段是否满足任一逻辑条件。例如下列字段 {数学成绩} 、{语文成绩} 都是数字类型且单元格值分别为 50、80 时:
公式:OR({数学成绩} > 60, {语文成绩} > 60)
运算结果:true
// 作为IF() 函数的判断条件使用。例如下列字段 {数学成绩}、{语文成绩} 都是数字类型且单元格值分别为 50、80 时:
公式:IF(OR({数学成绩} > 60, {语文成绩} > 60), "合格", "不合格")
运算结果:"合格"
XOR()
如果奇数个参数为真( true ),则返回真( true ),否则返回假( false )。
XOR(logical1, [logical2, …])
参数说明
logical:是一个或多个逻辑条件。
示例
// 奇数个逻辑条件为真(true)时,输出真(true)。
公式:XOR(3 > 2, 4 < 3)
运算结果:true
// 偶数个逻辑条件为真(true)时,输出假(false)。
公式:XOR(3 > 2, 4 > 3)
运算结果:false
// 判断数值类型的字段是否满足奇数个逻辑条件。例如下列字段 {数学成绩}、{语文成绩} 都是数字类型且单元格值分别为 50、80 时:
公式:XOR({数学成绩} > 60, {语文成绩} > 60)
运算结果:true
// 作为IF() 函数的判断条件使用。例如下列字段 {数学成绩}、{语文成绩} 都是数字类型且单元格值分别为 50、80 时:
公式:IF(XOR({数学成绩} > 60, {语文成绩} > 60), "合格", "不合格")
运算结果:"合格"
BLANK()
表示一个空值。
BLANK()
参数说明
该函数不需要填写参数。
该函数可以用来判断单元格是否为空值,见例子一; 该函数可以将单元格内的原内容替换为空值,见例子二; 注①:空值不是零值( 0 )哦。
示例
// 判断单元格是否为空值。下列字段 {开始时间} 是日期类型且单元格值为空值。
公式:IF({开始时间} = BLANK(), "尚未确定时间", "已确定开始时间")
运算结果:"尚未确定时间"
// 将单元格内的原内容替换为空值。下列字段 {价格} 是数字类型且单元格值为 0 。
公式:IF({价格} = 0, BLANK(), {价格})
运算结果:空值
ERROR()
在单元格内显示错误提示和信息。
ERROR(message)
参数说明
message:非必填,要输出的错误信息,缺省值为 “#Error!” 。
示例
// 不填写错误信息,直接输出错误提示。下列字段 {年纪} 是数字类型且单元格值为 -1 。
公式:IF({年纪} < 0, ERROR(), "正常")
运算结果:#Error!
// 填写错误信息,输出错误提示和信息。下列字段 {年纪} 是数字类型且单元格值为 -1 。
公式:IF({年纪} < 0, ERROR("统计错误"), "正常")
运算结果:#Error: 统计错误
IS_ERROR()
检查一个表达式是否运行错误,如果错误则返回真( true )。
IS_ERROR(expression)
参数说明
expression:是需要检查的表达式。表达式可以是算术运算、逻辑判断等类型。
示例
// 算术运算出现错误。
公式:IS_ERROR(2/0)
运算结果:true
// 文本与数字进行混合运算出现错误。
公式:IS_ERROR("哈哈"*2)
运算结果:true
NOT()
将逻辑条件反转。
NOT(logical)
参数说明
logical:是逻辑条件,经过逻辑条件运算结果一般为真( true )和假( false )。
本函数会将逻辑条件求反,例如: 如例子一:
NOT( 2 > 3 )
经过反转后实际是判断 2 <= 3; 如例子二:NOT({年纪} > 18)
经过反转后,实际是判断 {年纪} ≤ 18。
示例
// 将逻辑条件反转。如下列经过反转后实际是判断 2 <= 3。
公式:NOT(2 > 3)
运算结果:true
// 引入数字类型的字段 {年纪} ,将逻辑条件反转。如下列经过反转后实际是判断 {年纪} ≤ 18。 当单元格内值为 12。
公式:NOT({年纪} > 18)
运算结果:true