表达式中的操作与函数

2022-04-27 更新
2747 次浏览

什么是函数?

函数是一些预先定义好的公式,它们能使用一种叫做参数的特定数值按照特定的顺序或结构进行计算(计算的结果叫做返回值)。

表达式中支持的操作

分类 操作 说明
逻辑操作 = 等于
逻辑操作 != 不等于
逻辑操作 > 大于
逻辑操作 < 小于
逻辑操作 >= 大于等于
逻辑操作 <= 小于等于
数学操作 +
数学操作 -
数学操作 *
数学操作 /

字段类型的返回值类型

不同的字段类型,对应的字段变量的结果类型不同:

字段类型 返回值类型
文本(单行/多行/带格式)、号码、条码 文本 text
数值(数值/百分比)、金额、计算公式(结果为数字/百分比) 数字 number
日期和时间(仅日期/日期和时间)、计算公式(结果为仅日期/日期和时间) 日期 datetime
选项(单选项/多选项)、下拉菜单(单选项/多选项) 选项 category
工作区成员(一个成员/多个成员) 用户 user
关联其他表格(一条数据/多条数据) 数据 item
图片、附件 文件 file

常用表达式的使用及含义

表达式 语法 数据类型 含义
指定表格 {表格名称} 表格 table 当使用统计函数时,才可引入指定的表格变量,用于统计指定表格的数据。
当前表格 {当前表格} 表格 table 用于引入当前触发工作流的表格变量,可用于统计函数。
当前数据 {当前数据} 数据 item 由数据触发的工作流中才可引入的变量,通过此变量可引入该数据的所有字段的值。
当前操作人 {当前操作人} 用户 user 由用户触发的工作流才可引入的变量,即通过定时到期触发的工作流不可引入。
目标表格 {目标表格} 表格 table 用于引入对目标表格数据的筛选时用到的目标表格字段。
目标数据 {目标数据} 数据 item 当工作流的后续操作要对指定表格修改数据时,每一条被操作的数据作为目标数据。
查找数据表格 {查找数据表格} 表格 table 用于引入要查找数据的表格字段。
查找到的数据 {查找到的数据} 数据 item 可在批量创建数据时引入找到的数据。

表达式中支持的函数

1、统计函数

函数 返回类型 说明 示例
COUNT (表格,[统计条件]) number 返回指定表格中满足条件的数据条数。统计条件中不可嵌套使用统计函数。 COUNT({员工表},{员工表.性别}=[{C:男}])
SUM (数字字段,[统计条件]) number 返回指定表格中满足条件的数据,其指定数字字段值的总和。统计条件中不可嵌套使用统计函数。 SUM({员工表.工资})
AVG(数字字段,[统计条件]) number 返回指定表格中满足条件的数据,其指定数字字段值的平均值。统计条件中不可嵌套使用统计函数。 AVG({员工表.工资})
MIN(字段,[统计条件]) number 返回指定表格中满足条件的数据,其指定数字、日期、文本字段值的最小值。统计条件中不可嵌套使用统计函数。 MIN({员工表.工资}) MIN({员工表.出生日期})
MAX(字段,[统计条件]) number 返回指定表格中满足条件的数据,其指定数字、日期、文本字段值的最大值。统计条件中不可嵌套使用统计函数。 MAX({员工表.工资}) MAX({员工表.出生日期})

2、逻辑函数

函数 返回类型 说明 示例 结果
IF(条件,表达式1,表达式2) 如果条件为真,则执行表达式1,为假则执行表达式2。条件中不可嵌套使用IF函数。 IF({员工表.年龄}>60,’退休’,’在职’) IF({员工表.年龄}>60,IF({员工表.性别}=[{C:女}],’退休’,’在职’),’在职’)
AND(条件1,条件2,[条件3,…]) boolean 所有条件均为真,则返回真,否则返回假。 AND(2=2,2<2) FALSE
OR(条件1,条件2,[条件3,…]) boolean 任意一个条件为真,则返回真,否则返回假。 OR(2=2,2>3) TRUE
NOT(逻辑结果) boolean 对逻辑结果取反。 NOT(2>3) TRUE
IN(变量,[变量1,变量2,…]) boolean 任意类型的变量或常量包含一组同类型变量或常量结果中的任意一个,则返回真。用于选项、用户、关联类型的字段变量与常量的比较。 IN(2,[2,3,4]) IN([2,5],[2,3,4]) TRUE
LIKE(文本,[文本1,文本2,…]) boolean 文本类型的变量或常量包含一组文本类型变量或常量结果中的任意一个,则返回真。逻辑操作LIKE的函数模式。 LIKE(‘伙伴云’,[‘伙伴’,’云’]) TRUE
ISEMPTY(变量) boolean 变量为空或未填写,则返回真。 ISEMPTY({员工表.电话}) TRUE
TRUE() boolean 返回值为真 IF(2=2,TRUE(),FALSE()) TRUE
FALSE() boolean 返回值为假 IF(2>2,TRUE(),FALSE()) FALSE

3、数学函数

函数 返回类型 说明 示例 结果
ABS(数值) number 返回数值的绝对值。 ABS(-2) 2
ROUND(数值,[小数位精确度]) number 根据设置的小数位精确度,返回对数值四舍五入后的值。小数位精确度默认为0,即只保留整数。 ROUND(3.44,1) ROUND(3.5) 3.4 4
INT(数值) number 舍掉小数位后,返回整数部分。 INT(3.44) 3
MOD(数值,除数) number 用数值除以除数后,返回整除后的余数。 MOD(10,3) 1
POWER(数值,幂次方) number 用于计算指定数值的指定幂次方。数值和幂次方均为数值类型的变量或常量,幂次方为大于1的数为乘方,为小于1(1/N)的数为开方。 POWER(5, 2) POWER(25, 1/2) 25 5

4、日期函数

函数 返回类型 说明 示例 结果
TODAY() datetime 返回当天日期。 TODAY() 2016/12/17
NOW() datetime 返回当天日期+时间。 NOW() 2016/12/17 15:02:27
DATEADD(日期,数值,[单位]) datetime 对日期加减按照单位加减。单位默认为日,可选单位:年Y、月M、日D、时H、分I、秒S。 DATEADD(‘2016-12-04’,3) DATEADD(‘2016-12-04 20:00:00’,3,’H’) 2016-12-07 2016-12-04 23:00:00
DATEDIF(日期1,日期2,[单位]) number 根据指定的单位,返回日期2减去日期1的差值。当日期2小于日期1时,差值为负值。单位默认为日,可选单位:年Y、月M、日D、时H、分I、秒S。 DATEDIF(‘2016-12-01’,’2016-12-04’) DATEDIF(‘2016-12-04 20:00:00’,’2016-12-05 20:00:00’,’H’) 3 24
DATEFORMAT(日期,格式) text 将日期转为指定格式返回。格式包括: 年:YYYY(=2016)、YY(=16) 月:MM(=01~12) 日:DD(=01~31) 时:HH(=00~23) 分:Mi(=00~59) 秒:SS(=00~59) 周几:D(=1~7,代表周日~周六) 每月中第几周:W(=1~5,从每月第1天开始算第1周) 每年中第几周:WW(=1~53,从每年第1天开始算第1周) DATEFORMAT(‘2016-12-04’,’YY年MM月DD日 星期WD’) 16年12月04日星期日
YEAR(日期) number 返回指定日期中的年。 YEAR(‘2016-12-04’) 2016
MONTH(日期) number 返回指定日期中的月。 MONTH(‘2016-12-04’) 12
DAY(日期) number 返回指定日期中的日。 DAY(‘2016-12-04’) 4
HOUR(日期) number 返回指定日期中的小时。 HOUR(‘2016-12-04 20:30:56’) 20
MINUTE(日期) number 返回指定日期中的分钟。 MINUTE(‘2016-12-04 20:30:56’) 30
SECOND(日期) number 返回指定日期中的秒。 SECOND(‘2016-12-04 20:30:56’) 56
WEEKNUM(日期) number 返回指定日期为第几周,从每年第1天开始算第1周。 WEEKNUM(‘2016-12-04’) 50
WEEKDAY(日期) number 返回指定日期为星期几。返回值为1~7,代表周日~周六。 WEEKDAY(‘2016-12-04’) 1

5、文本函数

函数 返回类型 说明 示例 结果
CONCAT(文本1,文本2,[文本3,…]) text 可用于连接多个任意类型的文本、日期、数字变量或常量。 CONCAT({总价}/10000, ‘万元’)
TEXT(变量) text 将变量转为文本。 TEXT({性别})
VALUE(文本) number 将文本转为数字。 VALUE(‘23元’) 23
LEN(文本) number 返回文本的长度,中文、英文都算1个字符。 LEN(‘伙伴云huoban’) 9
SEARCH(关键字,文本,[搜索开始位置]) number 在指定文本中查找关键字,返回第一次出现关键字的字符位置,文本的第一个字记为1。未找到,返回0。搜索开始位置,表示从文本的第几个字符开始搜索,默认为1。 SEARCH(‘伙伴’,’伙伴云伙伴云’) SEARCH(‘伙伴’,’伙伴云伙伴云’,3) 1 4
REPLACE(原文本,替换开始位置,替换字符数,新文本) text 在原文本中,从替换位置开始,往后数指定的替换字符数,将这段文本替换为新文本。 REPLACE(‘伙伴云’,1,2,’huoban’) huoban云
REPT(文本,重复次数) text 将文本重复指定次数。 REPT(‘伙伴’,2) 伙伴伙伴
PAD(原文本,长度,填充用的文本,填充位置) text 将原文本填充到指定长度,如果文本长度大于设置的长度,则不做任何操作。 PAD(‘1’,4,’0’,’LEFT’) 1
TRIM(文本) text 删除文本首尾的空格。 TRIM(‘ 伙伴云 ‘) 伙伴云
LEFT(文本,截取字符数) text 从文本左侧开始,返回指定字符数的文字。 LEFT(‘伙伴云’,2) 伙伴
RIGHT(文本,截取字符数) text 从文本右侧开始,返回指定字符数的文字。 RIGHT(‘伙伴云’,1)
MID(文本,开始位置,截取字符数) text 从文本指定位置开始,返回指定字符数的文字。 MID(‘伙伴云’,2,1)
SPLIT(文本,分割用的文本) array 将文本按照指定文字分割成数组。 SPLIT("文本1&文本2", "&") ["文本1", "文本2"]
JOIN(数组,连接用的文本) text 将数组用指定的文字连接成文本。ITEMS()、FIELDS()函数的返回值、多选的选项/用户/关联字段的值、通过“[]”产生的变量,均为数组变量。 JOIN(["文本1", "文本2"], "&") "文本1&文本2"

6、数组函数

函数 返回类型 说明 示例 结果
MERGE(数组1,数组2,…) array 用于多选字段,将多个多选结果去重拼接到一起。数组使用方括号“[值1,值2,…]”表示,选项、用户、关联字段,单选和多选的结果均为数组。 MERGE([{C:选项一},{C:选项二}],[{C:选项三}],{目标数据.选项字段}) 如果目标数据的“选项字段”选择的是“选项四” [{C:选项一},{C:选项二},{C:选项三},{C:选项四}]
REMOVE(原数组,元素1,元素2,…) array 用于多选字段,将多个多选结果去重拼接到一起。数组使用方括号“[值1,值2,…]”表示,选项、用户、关联字段,单选和多选的结果均为数组。 REMOVE({目标数据.负责人},{当前数据.成员},{U:张三})
ARRLEN(数组) array 返回数组中的元素个数,数组可以是多选字段或图片/附件。 ARRLEN({目标数据.参与人}) 10
INDEX(数组, 返回元素位置) 数组的值 返回数组变量中指定“位置”的值,位置可输入正整数。ITEMS()、FIELDS()函数的返回值、多选的选项/用户/关联字段的值、通过“[]”产生的变量,均为数组变量。 INDEX([{U:张三}, {U:李四}], 2) {U:李四}

7、特殊函数

函数 返回类型 说明 示例 结果
EMPTY () null 返回空值 EMPTY()
INCREMENT([重置方式]) number 基于表格,返回自增编号,编号从1开始,每次执行加1。工作流的每个后续动作中只能使用一次自增函数。 重置方式,用于按照指定的周期,将增长的编号重新设置为1,可选方式包括: -不重置:A(默认值,从1开始自增,不会重置) -按日重置:D(每天自增编号重置为1) -按月重置:M(每月第一天自增编号重置为1) -按年重置:Y(每年第一天自增编号重置为1) INCREMENT(‘A’) 1
OPTION(选项字段,变量) category 根据变量获取指定选项字段的备选项。 OPTION({目标表格.性别},{当前数据.性别})
ITEM(表格,条件,[排序],[返回字段]) item/字段的值 根据条件和排序获取指定表格中的一条数据,还可指定返回该数据哪个字段的值。无需条件时请写两个单引号’’。排序默认按照创建时间倒排。 ITEM({当前表格},{当前表格.销售状态}={C:已签约},{当前表格.销售额-倒序},{当前表格.销售人员}} 返回销售状态为已签约的销售额最大的一条数据的销售人员字段的值
ITEMS(表格,条件,[排序],[返回条数]) array 根据条件和排序获取指定表格中的全部数据(最多50条)或指定条数的数据。 ITEMS({当前表格},{当前表格.销售状态}={C:已签约},{当前表格.创建时间-倒序}} 返回销售状态为已签约的最新发布的50条数据
FIELDS(字段,条件,[排序],[返回条数]) array 根据条件和排序获取指定表格中的全部数据(最多50条)或指定条数的数据的指定字段值的集合。 FIELDS({当前表格.负责人},{当前表格.销售状态}={C:已签约},{当前表格.创建时间-倒序}} 返回销售状态为已签约的最新发布的50条数据中负责人的集合
GETUSER(用户,资料项) text 返回用户的指定资料项:name、phone、email GETUSER({U:张三},‘phone’)
GETURL(图片附件字段) text 返回图片/附件的URL链接,链接为标准HTML的A链接,链接名为文件名,多个图片/附件用顿号连接 GETURL(附件)
DISTANCE(位置1,位置2) number 返回两个位置间的直线距离,单位米,可用位置字段,或输入{L}选择一个指定地点。 DISTANCE({位置1},{L:北京天安门}) 23000
ID(变量) text 返回用户的user_id,返回数据的item_id,变量为多个ID的,会用“,”相连。 ID({当前操作人})
LEADERS(指定用户, 指定用户的主管层级, ['up']) user 用于获取用户在组织架构中的指定层级主管。[指定用户]为用户类型的变量或常量,{指定用户的主管层级}可以使用的参数为1-10,该数字代表指定用户的主管层级数,例如1表示直接主管,2表示第二级主管等。默认该指定层级主管为空时则取不到用户,如需向上取最近一级主管则使用"up"参数。 LEADERS({流程变量.成员}, 1, 'up')
LEADERSOFDEP(企业部门, ['up']) user 用于获取组织架构中指定部门的主管。[企业部门]为部门路径, 如需向上取最近一级主管则使用'up'参数。 LEADERSOFDEP({D:销售部/销售一部})
7 2