跳到主要内容

根据答案自动计算结果

计算公式根据来源题的答案,自动生成目标题的值。本例使用 采购金额计算(文档演示):填写数量与单价,第三题立即显示金额。

1. 准备三个数字字段​

在问卷中添加三道 单行文本题,分别命名为“采购数量”“单价(元)”“采购金额(元)”。选中题目,在右侧 内容限制 选择 数字。

题目设置用途
采购数量必填,数字,小数位数 0手动填写数量
单价(元)必填,数字,小数位数 2手动填写单价
采购金额(元)数字,小数位数 2,开启只读显示计算结果

“只读”用于让答题者查看自动计算结果,避免手动覆盖。多项填空题需要先选中具体填空项,再配置其公式。

2. 打开计算公式​

选中“采购金额(元)”,在右侧 计算公式 → 点击设置 打开编辑器。

采购金额题的计算公式入口、数字限制、小数位数和只读开关

从左侧字段树插入“采购数量”的答案值,再输入乘号并插入“单价”的答案值。界面会把字段显示为带题目名称的变量标签。

3. 写入金额公式​

本例的完整表达式为:

ROUND(#{quantity.quantity_value|0}*#{price.price_value|0},2)
  • quantity.quantity_value 和 price.price_value 分别是本例的题目 ID 与答案字段 ID;你的问卷会使用自己的 ID,应从字段树插入。
  • |0 表示来源字段为空时按 0 计算。可点击变量标签,在 变量设置 中设置默认值。
  • * 表示相乘,ROUND(...,2) 将结果四舍五入到两位小数。
  • 不要引用结果题自身,否则会形成循环依赖。

当前公式编辑器中,采购数量与单价变量相乘,并保留两位小数

不要把 Q1 直接粘贴到单题公式中

函数分类文档中的 Q1、Q2 是高级逻辑的题号写法。单题的“计算公式”应从字段树插入 #{题目ID.答案字段ID} 变量。两种入口的对应关系见 公式规则。

点击 确定 保存,等待自动保存完成后进入预览。

4. 验证结果和边界​

本例在 预览 → 电脑 中填写数量 10、单价 28,金额自动显示 280。数值 280 与 280.00 相等;小数位数限制不保证补齐末尾的零。

预览中数量 10、单价 28,金额自动计算为 280

输入预期金额检查点
数量 10,单价 28280正常相乘
数量 3,单价 19.9959.97小数计算
数量为空,单价 19.990变量默认值生效
修改任一来源字段自动更新没有沿用上一次结果

字段为空时金额按 0 计算,不代表可以跳过必填项提交。数量、价格是否允许 0 或负数,应另在 范围校验 中按业务设置;公式不会自动替你限制。

常用写法​

以下 ID 都是说明用占位名称,需替换为字段树插入的实际变量。

目的单题公式示例
两个数字相加SUM(#{a.value|0},#{b.value|0})
按分数输出等级IF(#{score.value|0}>=60,"合格","不合格")
拼接姓名CONCATENATE("你好,",#{_name.value})
读取题目分值#{$question_id},也可在变量设置中切换为分值
输出当前日期CURRENT_DATE("YYYY-MM-DD")

结果类型应与目标题兼容。输出“合格”等文字时,应使用不限内容的文本字段;不要写入限制为数字的字段。

常见问题​

为什么结果为空?​

检查变量是否来自当前问卷、来源字段是否有值、是否设置了合理默认值,以及返回值能否写入目标题。先使用固定公式 SUM(1,2) 验证入口,再逐个插入来源变量。

公式前要加等号吗?​

不需要。弹窗已显示等号提示,输入框内直接写 ROUND(...) 或其他表达式。逗号、括号、引号使用英文半角字符;判断相等使用 ==。

什么时候使用高级逻辑 assignment?​

单个字段根据其他答案计算自身值时,使用计算公式。需要统一管理多条赋值规则时,再使用高级逻辑中的 assignment。不要让两处规则同时修改同一个字段。

相关文档​