说明
函数是表达式中的「万能工具箱」。如需了解表达式语法等相关知识,请参阅:理解伙伴云的表达式
下列函数在 不同功能模块中是否可用,请参阅此页面:https://sc1m.hbjump.com/sp66ueq0muent
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 |
FLOOR(数值) | number | 将数值向下舍入为最接近的整数。 | FLOOR(3.5) | 3 |
CEILING(数值) | number | 将数值向上舍入为最接近的整数。 | CEILING(3.5) | 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 |
SQRT(数值) | number | 返回数值的平方根。 | SQRT(25) | 5 |
LOG(数值,[底数]) | number | 根据指定底数,返回数值的对数。底数:默认为 10。 | LOG(25, 5) | 2 |
PI() | number | 返回π值。 | PI() | 3.1415926535 |
MAXNUM(数值1, 数值2, [数值3, ...]) | number | 返回一组数值的最大值,数值参数为字段且字段值为空时不参与最大值的比较,但当所有数值参数均为字段,且字段值为空时,函数将返回 0。 | MAXNUM(100, 200, 300) | 300 |
MINNUM(数值1, 数值2, [数值3, ...]) | number | 返回一组数值的最小值,数值参数为字段且字段值为空时不参与最小值的比较,但当所有数值参数均为字段,且字段值为空时,函数将返回 0。 | MINNUM(100, 200, 300) | 100 |
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 | 返回指定日期为星期几。返回值为0~6,代表周日~周六。 | WEEKDAY(‘2016-12-24’) | 6 |
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’) | 0001 |
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" |
LOWER(文本) | text | 将文本中的所有字母转为小写形式。 | LOWER('AbC') | abc |
UPPER(文本) | text | 将文本中的所有字母转为大写形式。 | UPPER('aBc') | ABC |
6. 数组函数
函数 | 返回类型 | 说明 | 示例 | 结果 |
---|---|---|---|---|
MERGE(数组1,数组2,…) | array | 用于多选字段,将多个多选结果去重拼接到一起。数组使用方括号“[值1,值2,…]”表示,选项、用户、关联字段,单选和多选的结果均为数组。 | MERGE([{C:选项一},{C:选项二}],[{C:选项三}],{目标数据.选项字段}) 如果目标数据的“选项字段”选择的是“选项四” | [{C:选项一},{C:选项二},{C:选项三},{C:选项四}] |
REMOVE(原数组,元素1,元素2,…) | array | 用于多选字段,从多选的选项、成员、关联中移除元素,元素可以是字段变量或具体的值。 | 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 | 将其它类型的数值(如文本、其它表的选项字段)转换成目标表格 category 类型的数值,以便进行比较判断。 | OPTION({目标表格.性别}, {当前数据.性别}) | {C:目标表格.性别.男} |
ITEM(表格,条件,[排序],[返回字段]) | item/字段的值 | 类似 Excel 中的 VLOOKUP,可根据条件和排序获取指定表格中的一条数据,还可指定返回该数据哪个字段的值。无需条件时请写两个单引号’’。排序默认按照创建时间倒排。 | ITEM({当前表格},{当前表格.销售状态}={C:已签约},{当前表格.销售额-倒序},{当前表格.销售人员}} | 返回销售状态为已签约的销售额最大的一条数据的销售人员字段的值 |
ITEMS(表格,条件,[排序],[返回条数]) | array | 类似 Excel 中的 VLOOKUP,可根据条件和排序获取指定表格中的全部数据(最多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:销售部/销售一部}) |