根据答案自动计算结果
计算公式根据来源题的答案,自动生成目标题的值。本例使用 采购金额计算(文档演示):填写数量与单价,第三题立即显示金额。
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、Q2 是高级逻辑的题号写法。单题的“计算公式”应从字段树插入 #{题目ID.答案字段ID} 变量。两种入口的对应关系见 公式规则。
点击 确定 保存,等待自动保存完成后进入预览。
4. 验证结果和边界
本例在 预览 → 电脑 中填写数量 10、单价 28,金额自动显示 280。数值 280 与 280.00 相等;小数位数限制不保证补齐末尾的零。

| 输入 | 预期金额 | 检查点 |
|---|---|---|
| 数量 10,单价 28 | 280 | 正常相乘 |
| 数量 3,单价 19.99 | 59.97 | 小数计算 |
| 数量为空,单价 19.99 | 0 | 变量默认值生效 |
| 修改任一来源字段 | 自动更新 | 没有沿用上一次结果 |
字段为空时金额按 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。不要让两处规则同时修改同一个字段。