公式规则
1. 简介
公式,可以使字段的值根据函数自动计算出来,不需要再手动填写。本文将介绍公式编辑中的编写规则,帮助您更好的设计和使用公式。
2. 使用界面
公式编辑的使用界面如下:
3. 公式的组成
公式通常由字段、函数、运算符和标点符号组成,以如下公式为例:
ROUND(总价/数量,2)
- 字段:公式计算的数据来源,在表单字段中点击选择,如示例公式中的「总价」、「数量」;
- 函数:可以直接输入函数名称,或在函数列表中选择使用,如示例公式中的「ROUND」;
- 运算符:“+、-、*、/”等数据运算符号,直接在公式编辑区手动输入,如示例公式中的「/」;
- 标点符号:完整的公式常常需要添加标点符号进行完善,如示例公式中的逗号、括号。
4. 公式规则
4.1 字段的添加规则
在公式编辑中,所有的字段实际上都有一个内置的 ID,而所能看见的字段名称,也仅仅是一个名称。如需在公式中插入字段,可通过如下三种方式:
- 在字段列表中选择:在左下角的字段列表中点击字段,进行添加;
- 直接搜索字段名称:在编辑区输入当前表单中的字段名称,搜索出对应字段,并添加至公式中;
- 复制粘贴:点击右上角「复制公式」,在公式编辑中粘贴使用。以下场景中,公式均可相互复制使用:
- 表单字段公式
- 表单提交校验
- 表单批量编辑
- 流程提交校验
- 仪表盘计算字段
- 数据工厂计算字段
- 聚合表指标
- 聚合表提交校验
注:
1)仅通过「复制公式」粘贴的字段可用,手动输入名称或其他位置粘贴的字段不可用;
2)Safari 浏览器和 UC 浏览器,复制/剪切公式时暂不支持鼠标右键或键盘快捷键。
4.2 在当前/所有表单字段中选择字段
公式所要用到的字段,绝大多数情况下是从当前表单字段中选择。只有 MAPX 函数的最后 2 个参数会用到所有表单字段。
1)添加当前表单字段
在当前表单(如提成表)中,选择需要添加的字段:
2)添加所有表单字段
在字段列表处切换至所有表单,选择对应表单中的字段:
注:从当前表单字段中选择的字段是蓝色的,从所有表单字段中选择的字段是灰色的。
4.3 替换变量
如公式中的字段变量需要进行替换修改,可通过「替换变量」快速更换字段,便于批量修改公式内容,提升操作效率。
点击工具栏的「替换变量」,分别选择「要替换的变量」和「替换后的变量」,点击「确定」即可完成替换:
4.4 备注
「备注」即对公式添加备注信息,可用于记录公式的用途、说明或其他相关信息,提升公式的可读性,便于后续对公式进行管理和维护。
点击「备注」,在文本框中输入备注内容,点击「确定」即可添加备注信息:
4.5 调试
「调试」即预览公式的执行效果,可用于验证公式的准确性,以便于快速对公式进行调整优化,效果如下:
4.6 运算符号
简道云公式编辑中,支持的运算操作符和比较操作符如下:
运算规则 | 运算符号 |
加 | + |
减 | - |
乘 | * |
除 | / |
大于 | > |
小于 | < |
等于 | ==(注意不是=) |
不等于 | != |
大于等于 | >= |
小于等于 | <= |
4.7 标点符号
1)公式内所有出现的符号,都必须在英文状态下输入。
如使用了中文标点,页面中会提示“字符错误”,如下图所示:
2)如编辑公式时使用了函数,则必须要按照示例使用括号,且保证括号的两两匹配。
如缺少括号,或未两两匹配,页面中会提示“语法错误,缺少标示符”,如下图所示:
4.8 函数的输入规则
添加函数时,除了在函数列表选择,还可以手动输入。输入函数时会自动搜索出相关函数,可以直接点击使用:
4.9 字符数量限制
编辑公式时需要注意,每个公式最多添加 2000 行,且单行不能超过 10000 个字符,单行字符较多时建议使用回车键换行,而非超出编辑框自动换行。
当超出每个公式 2000 行或单行 10000 个字符限制时,会导致公式内容保存不全和无法运行公式的情况。
4.10 函数的参数设置
编写公式使用函数时,需要注意如下参数相关问题:
1)参数的个数
函数中参数的个数必须按照要求填写,保证公式的正常运行。
例如,日期函数 DATEDELTA,该函数要求添加两个参数,分别为「指定日期」和「需要加减的天数」。当函数的参数只添加了一个时,公式将无法正常计算,且页面中会提示“DATEDELTA:表达式参数的个数不符合要求“,如下图所示:
2)参数的数据类型
编写公式时要按照函数的要求,保证参数的数据类型的正确。
例如,日期函数 DAYS,该函数要求所有参数都必须是时间戳类型。当函数的参数使用了文本类型时,公式将无法正常计算,且页面中会提示“DAYS:表达式的第 1 个参数不符合类型要求”,如下图所示:
4.11 子表单中公式的使用
子表单中,一个字段存储的是一列数据,即一个子表单字段对应了多个值;如下图的「名称」字段对应的值为:["苹果","橘子","樱桃","草莓"]。
由于部分函数的参数是单个字段值,如LEFT、LOWER、TEXTDEPT等,故这些函数不能直接在主表中使用子表单字段。
如,需要将子表单中某一列的数据都转化为小写,并汇总在主表字段中:
- 如果直接在主表通过 CONCATENATE 函数和 LOWER 函数调用,则会调用失败;
- 如果先在子表中使用 LOWER 函数,再在主表中通过 CONCATENATE 函数将文本连接起来,则可以调用成功。
4.12 返回值数据类型
在对字段编辑公式时,不同的字段对公式的返回值的数据类型有不同的要求,不符合要求则可能无法获得正确的结果。
例如,对数字字段编写公式时,数字字段要求返回值的数据类型必须是数字,那么如果公式是 TODAY() , 就会导致公式无法计算出结果,因为 TODAY 函数的返回值是日期,不符合数字字段要求的返回值的数据类型。
支持编辑公式的表单字段对不同公式的返回值数据类型要求如下:
字段 | 对公式返回值的数据类型的要求 |
单行文本 | 文本、数字、日期等(日期以日期对象形式展示) |
多行文本 | 文本、数字、日期等(日期以日期对象形式展示) |
数字 | 只能是数字 |
日期时间 | 日期或数字(数字会视为单位为毫秒的时间戳) |
5. 扩展阅读(建议进阶用户阅读)
上文【4.12 返回值数据类型】中提到了不同字段对公式返回值的数据类型的要求,会发现单行文本的返回值并不仅限于文本,可以是数字等。
这是因为在简道云中支持部分数据类型之间的自动转换,数字 2 可以自动转换为文本 2,任何数字都可以这样轻易转换。
但是文本就不行了,文本"张三"就没法转换成数字,所以数字字段要求其公式的返回值只能是数字。
编写公式时,我们可以插入字段到公式中,插入到公式中的字段的数据类型和字段对公式返回值的数据类型并非完全相同。
例如,上文提到了单行文本编写公式时,公式的返回值可以是数字,但是在公式中插入单行文本字段时,该单行文本的数据类型只会是文本。
常见字段插入公式后的数据类型如下表所示:
字段 | 插入公式时的数据类型 |
单行文本 | 文本 |
数字 | 数字 |
日期时间 | 时间戳 |
下拉框 | 文本 |
单选按钮组 | 文本 |
下拉复选框 | 数组 |
复选框组 | 数组 |
流水号 | 文本 |
手机 | 手机 |