跳到主要内容

高级逻辑动作说明

动作决定条件或公式计算后,问卷要改变什么。显示、隐藏、必填和跳转写在 if ... then ... 中;赋值、校验和标题替换使用独立的 ... with ... 语句。

显示

if Q1A1 then show Q2
if Q1A1 then show Q2,Q3,Q4
if Q1A1 then show Q2~Q5

条件成立时显示目标;条件不成立时隐藏目标。目标可以是题目、题组、选项或矩阵行。

需要“满足任一条件就显示”时,把条件写成 OR(...),不要为同一目标拆成多条 show 规则:

if OR(Q1A1,Q1A2) then show Q2

隐藏

if Q1A1 then hide Q2

条件成立时隐藏题目;条件不成立时显示题目。

注意

当前版本不要用 hide 控制单个选项或矩阵行。要按条件隐藏选项,请改写成“满足相反条件时显示”,或使用基础规则中的 显示选项

动态必填

if Q1A1 then required Q2

条件成立时 Q2 必填,条件不成立时 Q2 取消必填。该动作适合原本就设计为“按条件必填”的问题。

如果 Q2 本身始终应该必填,不要再用 required 控制它,以免条件不成立时取消原有必填状态。

跳转和结束问卷

if Q1A1 then branch from Q1 to Q5
if Q1A2 then branch from Q1 to END
  • 跳到 Q5 时,Q1 与 Q5 之间的题目会被跳过,Q5 仍然显示。
  • 跳到 END 时,Q1 之后的题目会被跳过。
  • 条件不成立时,答题者按正常顺序继续。

常见跳转优先使用基础规则;需要批量复制、复杂公式条件或题组标签时,再使用 branch。详见跳转和结束问卷

公式赋值

assignment Q3 with SUM(Q1,Q2)
assignment Q4 with IF(Q1>=60,"合格","不合格")

assignment 会把公式结果写入目标题。目标类型应与结果类型一致:

  • 数字结果写入数字填空或评分结果题
  • 文本结果写入单行或多行文本题
  • 日期结果写入支持相应格式的题目

需要条件赋值时,把条件写进 IF(...)

assignment Q3 with IF(Q1A1,100,"")

动态校验

validate Q2 with IF(Q2>100,"不能超过100","")

校验公式返回:

  • 空字符串 "":校验通过
  • 其他文本:作为当前题的错误提示

条件校验示例:

validate Q2 with IF(AND(Q1A1,Q2>100),"选择该选项时不能超过100","")

动态标题

replace Q2 with CONCATENATE("你好,",Q1,",请填写联系方式")

replace 用公式结果替换题目标题,适合把姓名、产品或前一题答案带入后续题干。公式应始终返回非空、可读的文本。

提示

先在预览中填写所有来源题,再检查替换后的标题。来源为空时也应返回兜底文案,避免保留上一轮预览的旧标题。

动作速查

目标推荐动作
条件成立时显示题目或选项show
条件成立时隐藏题目hide
条件成立时变为必填required
跳过中间题或结束问卷branch
写入公式结果assignment
返回动态错误提示validate
生成动态题目标题replace