函数计算
像Excel中的函数功能,系统提供了多种处理数据的函数公式。表单中为某个字段设置好计算公式后,用户在创建记录或修改记录数据时,可以使该字段的值自动计算出来,不需要再手动填写,提高效率。
以下3个地方可使用函数处理数据
公式字段
字段的默认值赋值
工作流的运算节点
支持五大类型的函数:数学函数
、文本函数
、日期函数
、逻辑函数
、高级函数
。
场景示例
1、利用日期函数,将日期字段并转换为其他日期格式
分别获取日期年、月、日和星期的数值,然后重新拼接组合新的格式。
2、通过逻辑函数得出不同的结果
如果字段的内容是根据其他字段的内容不同结果也不同,则可以使用逻辑函数。
3、通过文本函数,识别出身份证号中的出生日期
根据身份证号,利用获取文本函数提取出生年、月、日,并使用拼接函数组合为日期格式。效果:
配置入口
支持函数赋值的字段: 只有文本、数值、金额、日期、邮箱、手机号等字段支持通过函数功能字段填充默认值,其他字段不支持。
支持作为函数参数的字段:文本、数值、金额、邮箱、手机、日期、单选、多选、成员、部门、检查框、地区、证件、子表、关联表。
- 不支持作为参数的字段:等级、文本组合、他表字段、公式、汇总、自动编号、富文本、级联选择、附件、大写金额、签名。
配置入口: 在表单编辑页面,选择字段后,点击右侧的动态默认值按钮,选择函数计算。
从左侧选择函数公式和字段参数,或手动编写公式函数和静态参数。
函数公式的组成
函数公式一般由 函数名
+参数
+运算符号
+参数分割符号
几个元素组成。
其中参数可以是字段值,也可以是静态值。
如下图中的函数:
在实际使用时,并非用到以上所有元素,也可以多个函数嵌套使用。函数的具体方法可参考示例,
函数编写规则和注意事项
1、公式开头不需要写等号
上面已经写了等号,编辑公式时不需要写=号。
2、函数和字段参数的正确选择
函数方法可以从左侧点击选择,也可以手写但必须全部大写。
字段必须从左侧选择
3、函数类型正确选择
每个函数都有固定的结果返回类型,为字段设置默认值,必须选择和此字段类型一致的函数。
例如,为数值字段设置默认值,如果选择了DATENOW(),返回的是时间,则不会有任何内容。
4、运算符号的正确书写
** ** | 加 | 减 | 乘 | 除 | 大于 | 等于 | 小于 | 大于等于 | 小于等于 | 不等于 |
---|---|---|---|---|---|---|---|---|---|---|
符号 | + | - | * | / | > | == | < | >= | <= | != |
公式中等于的符号是双等号:== ,不是 = ,例如: IF(单选字段=='选项1',5,0),
5、函数参数的正确书写
例如,计算多个字段求和的SUM(字段1,字段2) 函数,函数的参数必须是数字类型,如果选择字段是日期类型就不会正确处理,结果就会为空。
参数的类型,在下方的示例中都有说明
大部分函数都需要参数,参数的类型主要有静态值、动态值、动态和静态混合3种,输入参数时,要保证参数的正确书写,函数公式才能正确计算。
1)静态参数
静态参数是指,将参数写成固定值,每次计算都使用相同的值参与函数计算。
文本、时间类型的静态参数,首尾必须加单引号
文本、时间、单选都当作是文本类型,如果参数是固定值,内容的首尾必须加英文引号(双引号也行)
例1:获取2021年10月11号是周几
例2:将手机号中的4-7位替换为****, 这是一个静态固定参数,首尾加单引号。
数值类型的静态参数,直接写数字
例如,获取手机号内容时,需要指定位数开始,直接写4即可,不用加引号。
2)动态参数(字段值或函数结果)
如果参数是字段值,直接选择即可,首尾不加引号。
例1:求某个小数的四舍五入的值,直接选择字段即可。
例2:求多个数值字段之间的和,分别选择对应的字段即可,除了参数间的分隔符(英文逗号),无需其他符号。
如果参数是其他函数返回的结果,首尾不加引号。
例:获取当前日期是周几。
3)静态内容和动态内容的组合
如果参数是多个动态和静态内容的组合,则需要拼接,拼接的结果其实已经是文本类型,此时不需要首尾加引号。
例如,通过DATEADD()函数获取某个日期所在周的周一日期。
DATEADD函数的功能是为某个日期字段增加减少一段时长得到新的日期, 我们通过这个函数得到一个日期的当周的周一的日期。
函数用法: DATEADD( 日期
,'加减时长', 输出格式 )
参数“加减时长” 是一个文本类型的组合内容(加减符号+数字+单位),如:-1d表示减去1天,+3M 表示增加3个月。由于周几是动态值,需要字段参与,因为加减字符,数字和单位需要使用CONCAT来组合拼接。
- 写法:DATEADD(
日期
,CONCAT('-',WEEKDAY(日期
)-1,'d'),1)
例如,日期是周4,代入后,公式简化为 DATEADD(日期
,'-3d',1)
6、函数详解和示例
文档问题反馈
文档中是否有错别字、内容过期、难以理解等问题? 点此给我们反馈吧