逻辑函数
逻辑函数用于把题目答案转换成 TRUE/FALSE 判断,或根据不同条件返回不同结果,常用于显示逻辑、校验逻辑、自动评分和结果 分层。
示例中的变量遵循统一规则:Q1 表示第 1 题答案,Q1A1 表示第 1 题第 1 个选项,Q1~4 表示第 1 到第 4 题,QS1Q1 表示第 1 个题组内第 1 题。
函数速查
AND、CHOOSE、FALSE、IF、IFERROR、IFNA、IFS、NOT、OR、SWITCH、TRUE、XOR
AND
作用: 用于所有条件都为 TRUE 时返回 TRUE,适合显示条件、校验规则、考试通过判断和分支评分。
语法:
AND(logical1, logical2, ...)
参数说明:
logical1:第 1 个判断条件,可以写成Q1>=60、Q1A1、INCLUDE("学校",Q2)等会得到 TRUE/FALSE 的公式。logical2:第 2 个判断条件,可以写成Q1>=60、Q1A1、INCLUDE("学校",Q2)等会得到 TRUE/FALSE 的公式。...:表示可以继续添加同类参数,适合一次处理多道题或多组选项。
返回结果: 返回 TRUE 或 FALSE,可直接用于显示条件、校验条件或分支判断。
使用示例:
AND(Q1>=60,Q2>=60)
说明: Q1 表示第 1 题答案,Q2 表示第 2 题答案;公式会用 AND 按语法处理这些值,返回 TRUE 或 FALSE,可直接用于显示条件、校验条件或分支判断。
使用场景:
| 场景举例 | 分析 | 公式 |
|---|---|---|
| 判断两门考试是否都达标 | 第 1 题和第 2 题都达到 60 分才允许进入证书页。 | AND(Q1>=60,Q2>=60) |
| 判断资料是否填写完整 | 姓名不为空且手机号不为空时,校验通过。 | AND(NOT(ISBLANK(Q1)),NOT(ISBLANK(Q2))) |
| 多选题必须同时选择两个关键选项 | Q1 的第 1、2 个选项都被选中才显示后续追问题。 | AND(Q1A1,Q1A2) |
| 测评维度同时达到门槛 | 题组内两项评分都不低于 4,才判定该维度达标。 | AND(QS1Q1>=4,QS1Q2>=4) |
注意事项:
- 用于显示逻辑或校验逻辑时,最终结果应能判断为 TRUE/FALSE。
- 参数之间使用英文逗号分隔,括号、引号也要使用英文半角符号。
- 正式发布前建议用空答案、正常答案和边界答案各预览一次,确认返回结果符合预期。
CHOOSE
作用: 用于按序号从多个候选值中返回一个值,适合显示条件、校验规则、考试通过判断和分支评分。
语法:
CHOOSE(index_num, value1, value2, ...)
参数说明:
index_num:要返回第几个候选值,从 1 开始计数,可以来自单选题答案、等级编号或计算结果。value1:第 2 个值,可以是数字、文本、日期、题目变量或表达式。value2:第 3 个值,可以是数字、文本、日期、题目变量或表达式。...:表示可以继续添加同类参数,适合一次处理多道题或多组选项。
返回结果: 返回匹配到的值,结果类型取决于你填写的返回内容,可能是数字、文本、日期或 TRUE/FALSE。
使用示例:
CHOOSE(Q1,"低风险","中风险","高风险")
说明: Q1 表示第 1 题答案;公式会用 CHOOSE 按语法处理这些值,返回匹配到的值,结果类型取决于你填写的返回内容,可能是数字、文本、日期或 TRUE/FALSE。
使用场景:
| 场景举例 | 分析 | 公式 |
|---|---|---|
| 风险等级编号转文字 | Q1 填 1、2、3 时,分别返回低风险、中风险、高风险。 | CHOOSE(Q1,"低风险","中风险","高风险") |
| 满意度选项转建议 | 第 2 题选择不同满意度编号时,输出对应处理建议。 | CHOOSE(Q2,"立即回访","重点跟进","正常维护","无需跟进") |
| 考试题型转分值 | 按题型编号返回该题型的基础分。 | CHOOSE(Q3,5,10,15) |
注意事项:
- 用于显示逻辑或校验逻辑时,最终结果应能判断为 TRUE/FALSE。
- 参数之间使用英文逗号分隔,括号、引号也要使用英文半角符号。
- 正式发布前建议用空答案、正常答案和边界答案各预览一次,确认返回结果符合预期。
FALSE
作用: 用于直接返回逻辑值 FALSE,适合显示条件、校验规则、考试通过判断和分支评分。
语法:
FALSE()
参数说明: 该函数不需要参数,直接写函数名和一对英文括号即可。
返回结果: 返回 TRUE 或 FALSE,可直接用于显示条件、校验条件或分支判断。
使用示例:
FALSE()
说明: 示例使用固定值演示;公式会用 FALSE 按语法处理这些值,返回 TRUE 或 FALSE,可直接用于显示条件、校验条件或分支判断。
使用场景:
| 场景举例 | 分析 | 公式 |
|---|---|---|
| 临时关闭某个显示规则 | 调试问卷时让某个后续题始终不显示。 | FALSE() |
| 暂停某条校验规则 | 发布前暂时让某条校验条件固定不通过,用于检查提示效果。 | FALSE() |
注意事项:
- 用于显示逻辑或校验逻辑时,最终结果应能判断为 TRUE/FALSE。
- 参数之间使用英文逗号分隔,括号、引号也要使用英文半角符号。
- 正式发布前建议用空答案、正常答案和边界答案各预览一次,确认返回结果符合预期。
IF
作用: 用于根据条件成立与否返回两个结果之一,适合显示条件、校验规则、考试通过判断和分支评分。
语法:
IF(test, then_value, otherwise_value)
参数说明:
test:第 1 个判断条件,可以写成Q1>=60、Q1A1、INCLUDE("学校",Q2)等会得到 TRUE/FALSE 的公式。then_value:条件成立时返回的内容,可以是文本、数字、题目变量或另一个公式。otherwise_value:条件不成立或没有匹配时返回的备用内容,可以是文本、数字或公式。
返回结果: 返回匹配到的值,结果类型取决于你填写的返回内容,可能是数字、文本、日期或 TRUE/FALSE。
使用示例:
IF(Q1>=60,"合格","不合格")
说明: Q1 表示第 1 题答案;公式会用 IF 按语法处理这些值,返回匹配到的值,结果类型取决于你填写的返回内容,可能是数字、文本、日期或 TRUE/FALSE。
使用场景:
| 场景举例 | 分析 | 公式 |
|---|---|---|
| 考试分数转成是否合格 | 第 1 题分数达到 60 返回“合格”,否则返回“不合格”。 | IF(Q1>=60,"合格","不合格") |
| 按年龄显示不同提示 | 第 2 题年龄小于 18 时提示监护人确认。 | IF(Q2<18,"需监护人确认","可独立填写") |
| 根据选项给不同分值 | 第 1 题选择第 1 个选项得 10 分,否则得 0 分。 | IF(Q1A1,10,0) |
| 校验金额是否为正数 | 金额大于 0 时不提示,否则返回错误提示。 | IF(Q1>0,"","请输入大于 0 的金额") |
注意事项:
- 用于显示逻辑或校验逻辑时,最终结果应能判断为 TRUE/FALSE。
- 参数之间使用英文逗号分隔,括号、引号也要使用英文半角符号。
- 正式发布前建议用空答案、正常答案和边界答案各预览一次,确认返回结果符合预期。
IFERROR
作用: 用于当表达式返回错误时改用备用值,适合显示条件、校验规则、考试通过判断和分支评分。
语法:
IFERROR(value, valueIfError)
参数说明:
value:第 1 个值,可以是数字、文本、日期、题目变量或表达式。valueIfError:第 2 个值,可以是数字、文本、日期、题目变量或表达式。
返回结果: 返回匹配到的值,结果类型取决于你填写的返回内容,可能是数字、文本、日期或 TRUE/FALSE。
使用示例:
IFERROR(Q1/Q2,0)
说明: Q1 表示第 1 题答案,Q2 表示第 2 题答案;公式会用 IFERROR 按语法处理这些值,返回匹配到的值,结果类型取决于你填写的返回内容,可能是数字、文本、日期或 TRUE/FALSE。
使用场景:
| 场景举例 | 分析 | 公式 |
|---|---|---|
| 避免除数为空导致报错 | 计算完成率时,如果总数为空或为 0,就返回 0。 | IFERROR(Q1/Q2,0) |
| 查找失败时给默认文案 | 没有匹配到等级时返回“未匹配”。 | IFERROR(VLOOKUP(Q1,[["A",10],["B",8]],2,FALSE()),"未匹配") |
| 统计异常时保留空结果 | 统计题组平均分出错时,不影响问卷提交。 | IFERROR(AVERAGE(QS1Q1,QS1Q2),"") |
注意事项:
- 用于显示逻辑或校验逻辑时,最终结果应能判断为 TRUE/FALSE。
- 参数之间使用英文逗号分隔,括号、引号也要使用英文半角符号。
- 正式发布前建议用空答案、正常答案和边界答案各预览一次,确认返回结果符合预期。
IFNA
作用: 用于当表达式返回 #N/A 时改用备用值,适合显示条件、校验规则、考试通过判断和分支评分。
语法:
IFNA(value, value_if_na)
参数说明:
value:第 1 个值,可以是数字、文本、日期、题目变量或表达式。value_if_na:没有找到结果时返回的备用值,常用空文本或“未找到”。
返回结果: 返回匹配到的值,结果类型取决于你填写的返回内容,可能是数字、文本、日期或 TRUE/FALSE。
使用示例:
IFNA(MATCH("A",["B","C"],0),"未找到")
说明: 示例使用固定值演示;公式会用 IFNA 按语法处理这些值,返回匹配到的值,结果类型取决于你填写的返回内容,可能是数字、文本、日期或 TRUE/FALSE。
使用场景:
| 场景举例 | 分析 | 公式 |
|---|---|---|
| 选项编号不存在时提示 | 查找不到指定选项时返回“未找到”。 | IFNA(MATCH(Q1,["A","B","C"],0),"未找到") |
| 等级表缺少记录时兜底 | 映射不到分值时返回 0,避免计算中断。 | IFNA(VLOOKUP(Q1,[["A",10],["B",8]],2,FALSE()),0) |
| 题目答案未命中名单 | 答案不在名单中时返回“其他”。 | IFNA(MATCH(Q2,["北京","上海"],0),"其他") |
注意事项:
- 用于显示逻辑或校验逻辑时,最终结果应能判断为 TRUE/FALSE。
- 参数之间使用英文逗号分隔,括号、引号也要使用英文半角符号。
- 正式发布前建议用空答案、正常答案和边界答案各预览一次,确认返回结果符合预期。
IFS
作用: 用于按顺序判断多组条件,返回第一组成立条件对应的结果,适合显示条件、校验规则、考试通过判断和分支评分。
语法:
IFS(logical_test1, value_if_true1, logical_test2, value_if_true2, ..., default_value)
参数说明:
logical_test1:第 1 个判断条件,可以写成Q1>=60、Q1A1、INCLUDE("学校",Q2)等会得到 TRUE/FALSE 的公式。value_if_true1:条件成立时返回的内容,可以是文本、数字、题目变量或另一个公式。logical_test2:第 3 个判断条件,可以写成Q1>=60、Q1A1、INCLUDE("学校",Q2)等会得到 TRUE/FALSE 的公式。value_if_true2:条件成立时返回的内容,可以是文本、数字、题目变量或另一个公式。default_value:条件不成立或没有匹配时返回的备用内容,可以是文本、数字或公式。...:表示可以继续添加同类参数,适合一次处理多道题或多组选项。
返回结果: 返回匹 配到的值,结果类型取决于你填写的返回内容,可能是数字、文本、日期或 TRUE/FALSE。
使用示例:
IFS(Q1<60,"不合格",Q1<80,"合格","优秀")
说明: Q1 表示第 1 题答案;公式会用 IFS 按语法处理这些值,返回匹配到的值,结果类型取决于你填写的返回内容,可能是数字、文本、日期或 TRUE/FALSE。
使用场景:
| 场景举例 | 分析 | 公式 |
|---|---|---|
| 按成绩划分等级 | 从低到高判断分数,返回第一个命中的等级。 | IFS(Q1<60,"不合格",Q1<80,"合格","优秀") |
| 按满意度输出标签 | 1 到 5 分满意度转为差、中、好三个等级。 | IFS(Q1<=2,"待改进",Q1<=4,"满意","非常满意") |
| 按风险分输出建议 | 风险分越高,返回越严格的处理建议。 | IFS(Q1<30,"低风险",Q1<70,"中风险","高风险") |
| 按题组得分给测评结果 | 题组总分分段显示不同解释。 | IFS(SUM(QS1Q1,QS1Q2)<6,"偏低",SUM(QS1Q1,QS1Q2)<9,"正常","较高") |
注意事项:
- 该函数在系统中有扩展或覆盖行为,实际效果以本页说明为准;从 Excel 复制公式时建议重新预览。
- 用于显示逻辑或校验逻辑时,最终结果应能判断为 TRUE/FALSE。
- 参数之间使用英文逗号分隔,括号、引号也要使用英文半角符号。
- 正式发布前建议用空答案、正常答案和边界答案各预览一次,确认返回结果符合预期。
NOT
作用: 用于反转逻辑值,TRUE 变 FALSE,FALSE 变 TRUE,适合显示条件、校验规则、考试通过判断和分支评分。
语法:
NOT(logical)
参数说明:
logical:第 1 个判断条件,可以写成Q1>=60、Q1A1、INCLUDE("学校",Q2)等会得到 TRUE/FALSE 的公式。
返回结果: 返回 TRUE 或 FALSE,可直接用于显示条件、校验条件或分支判断。
使用示例:
NOT(Q1A1)
说明: Q1A1 表示第 1 题第 1 个选项是否被选中;公式会用 NOT 按语法处理这些值,返回 TRUE 或 FALSE,可直接用于显示条件、校验条件或分支判断。
使用场景:
| 场景举例 | 分析 | 公式 |
|---|---|---|
| 排除某个选项后显示题目 | 第 1 题未选择“不参加”时 显示报名信息。 | NOT(Q1A1) |
| 检查必填题是否未填 | 第 1 题为空时返回 TRUE,可用于提示补充答案。 | ISBLANK(Q1) |
| 反转已有判断结果 | 不满足 60 分条件时显示补考说明。 | NOT(Q1>=60) |
注意事项:
- 用于显示逻辑或校验逻辑时,最终结果应能判断为 TRUE/FALSE。
- 参数之间使用英文逗号分隔,括号、引号也要使用英文半角符号。
- 正式发布前建议用空答案、正常答案和边界答案各预览一次,确认返回结果符合预期。
OR
作用: 用于任意条件为 TRUE 时返回 TRUE,适合显示条件、校验规则、考试通过判断和分支评分。
语法:
OR(logical1, logical2, ...)
参数说明:
logical1:第 1 个判断条件,可以写成Q1>=60、Q1A1、INCLUDE("学校",Q2)等会得到 TRUE/FALSE 的公式。logical2:第 2 个判断条件,可以写成Q1>=60、Q1A1、INCLUDE("学校",Q2)等会得到 TRUE/FALSE 的公式。...:表示可以继续添加同类参数,适合一次处理多道题或多组选项。
返回结果: 返回 TRUE 或 FALSE,可直接用于显示条件、校验条件或分支判断。
使用示例:
OR(Q1A1,Q1A2)
说明: Q1A1 表示第 1 题第 1 个选项是否被选中,Q1A2 表示第 1 题第 2 个选项是否被选中;公式会用 OR 按语法处理这些值,返回 TRUE 或 FALSE,可直接用于显示条件、校验条件或分支判断。
使用场景:
| 场景举例 | 分析 | 公式 |
|---|---|---|
| 任一选项命中即显示追问 | 选择“学生”或“教师”任一身份,都显示教育场景问题。 | OR(Q1A1,Q1A2) |
| 任一科目优秀即打标签 | 语文或数学任一题得分达到 90,标记为单科优秀。 | OR(Q1>=90,Q2>=90) |
| 联系方式二选一校验 | 手机号或邮箱至少填写一项时,允许提交。 | OR(NOT(ISBLANK(Q1)),NOT(ISBLANK(Q2))) |
| 任一题组条件满足 | 题组内任一风险项被选中时进入风险说明页。 | OR(QS1Q1A1,QS1Q2A1) |
注意事项:
- 用于显示逻辑或校验逻辑时,最终结果应能判断为 TRUE/FALSE。
- 参数之间使用英文逗号分隔,括号、引号也要使用英文半角符号。
- 正式发布前建议用空答案、正常答案和边界答案各预览一次,确认返回结果符合预期。
SWITCH
作用: 用于按表达式的值匹配候选项并返回对应结果,适合显示条件、校验规则、考试通过判断和分支评分。
语法:
SWITCH(expression, value1, result1, value2, result2, ..., default_value)
参数说明:
expression:第 1 个参数,按函数语法填写,可使用题目变量、固定值或表达式。value1:第 2 个值,可以是数字、文本、日期、题目变量或表达式。result1:第 3 个参数,按函数语法填写,可使用题目变量、固定值或表达式。value2:第 4 个值,可以是数字、文本、日期、题目变量或表达式。result2:第 5 个参数,按函数语法填写,可使用题目变量、固定值或表达式。default_value:条件不成立或没有匹配时返回的备用内容,可以是文本、数字或公式。...:表示可以继续添加同类参数,适合一次处理多道题或多组选项。
返回结果: 返回匹配到的值,结果类型取决于你填写的返回内容,可能是数字、文本、日期或 TRUE/FALSE。
使用示例:
SWITCH(Q1,"A",10,"B",8,0)
说明: Q1 表示第 1 题答案;公式会用 SWITCH 按语法处理这些值,返回匹配到的值,结果类型取决于你填写的返回内容,可能是数字、文本、日期或 TRUE/FALSE。
使用场景:
| 场景举例 | 分析 | 公式 |
|---|---|---|
| 选项代码转分值 | 把 A、B、C 选项答案转换成不同分值。 | SWITCH(Q1,"A",10,"B",8,"C",6,0) |
| 报名类型转费用 | 按第 1 题的报名类型返回对应费用。 | SWITCH(Q1,"个人",99,"团队",79,"学生",49,0) |
| 考试等级转说明 | 按等级代码返回结果页文案。 | SWITCH(Q2,"A","优秀","B","良好","C","合格","待提升") |
| 矩阵行答案转标签 | 按矩阵第 1 行选择结果输出风险标签。 | SWITCH(Q1S1,"低","通过","中","复核","高","人工处理","未评估") |
注意事项:
- 用于显示逻辑或校验逻辑时,最终结果应能判断为 TRUE/FALSE。
- 参数之间使用英文逗号分隔,括号、引号也要使用英文半角符号。
- 正式发布前建 议用空答案、正常答案和边界答案各预览一次,确认返回结果符合预期。
TRUE
作用: 用于直接返回逻辑值 TRUE,适合显示条件、校验规则、考试通过判断和分支评分。
语法:
TRUE()
参数说明: 该函数不需要参数,直接写函数名和一对英文括号即可。
返回结果: 返回 TRUE 或 FALSE,可直接用于显示条件、校验条件或分支判断。
使用示例:
TRUE()
说明: 示例使用固定值演示;公式会用 TRUE 按语法处理这些值,返回 TRUE 或 FALSE,可直接用于显示条件、校验条件或分支判断。
使用场景:
| 场景举例 | 分析 | 公式 |
|---|---|---|
| 临时打开某个显示规则 | 调试问卷时让后续题始终显示,便于检查页面内容。 | TRUE() |
| 让校验规则固定通过 | 暂时跳过复杂校验,确认其他公式是否正常工作。 | TRUE() |
注意事项:
- 用于显示逻辑或校验逻辑时,最终结果应能判断为 TRUE/FALSE。
- 参数之间使用英文逗号分隔,括号、引号也要使用英文半角符号。
- 正式发布前建议用空答案、正常答案和边界答案各预览一次,确认返回结果符合预期。
XOR
作用: 用于得到逻辑异或结果,TRUE 的数量为奇数时返回 TRUE,适合显示条件、校验规则、考试通过判断和分支评分。
语法:
XOR(logical1, logical2, ...)
参数说明:
logical1:第 1 个判断条件,可以写成Q1>=60、Q1A1、INCLUDE("学校",Q2)等会得到 TRUE/FALSE 的公式。logical2:第 2 个判断条件,可以写成Q1>=60、Q1A1、INCLUDE("学校",Q2)等会得到 TRUE/FALSE 的公式。...:表示可以继续添加同类参数,适合一次处理多道题或多组选项。
返回结果: 返回 TRUE 或 FALSE,可直接用于显示条件、校验条件或分支判断。
使用示例:
XOR(Q1A1,Q1A2)
说明: Q1A1 表示第 1 题第 1 个选项是否被选中,Q1A2 表示第 1 题第 2 个选项是否被选中;公式会用 XOR 按语法处理这些值,返回 TRUE 或 FALSE,可直接用于显示条件、校验条件或分支判断。
使用场景:
| 场景举例 | 分析 | 公式 |
|---|---|---|
| 两个互斥选项只能选一个 | 第 1 题第 1、2 个选项只有一个被选中时才返回 TRUE。 | XOR(Q1A1,Q1A2) |
| 两项资格只满足一项时追问 | 只有年龄达标或证件达标其中一项成立时,进入人工确认。 | XOR(Q2>=18,Q3A1) |
注意事项:
- 用于显示逻辑或校验逻辑时,最终结果应能判断为 TRUE/FALSE。
- 参数之间使用英文逗号分隔,括号、引号也要使用英文半角符号。
- 正式发布前建议用空答案、正常答案和边界答案各预览一次,确认返回结果符合预期。