Skip to content
在此页面上
在流程设计中,系统支持通过函数设定流程流转条件,也就是说当流程节点满足某一函数的计算值时,流程可进入下一节点。

可以使用函数的功能入口

  1. 流程链接线

  2. 表单字段(暂未开放)

函数使用规则

 使用函数时有3要素:1、可用变量 2、系统支持的函数  3、运算符号 
  • 可用变量只指当前流程表单中【已保存】的表单字段,目前系统支持编辑公式的字段有 8 种类型:「单行文本」、「多行文本」、「数字」和「日期时间」、「下拉菜单」、「人员」、「电话」和「邮箱」。

  • 目前系统支持函数运算符号有:

    基础运算符:+(加)、-(减)、*(乘)、/(除)、 比较运算符:=(等于)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于)、!=(不等于) 图

  • 目前系统支持多种类型的函数公式,函数书写时需用大写字母表示,输入函数时会自动联想,正确的函数会显示为紫红色。


## 函数公式使用说明 ![image.png](https://cdn.nlark.com/yuque/0/2021/png/944822/1615972100813-482c9ed5-cd14-4232-8119-89d3b40e29de.png#align=left&display=inline&height=310&originHeight=620&originWidth=1614&size=142543&status=done&style=none&width=807)
在使用函数时,要按照每个函数的要求,保证参数的数据类型的正确。
举例:AVERAGE(求平均值)为数学函数,函数公式为:AVERAGE(number1, [number2], …),这里要求number(可以理解为字段)都是要求数字类型的字段才可以,如果是时间或文本则会导致公式无法计算出结果。

>> 逻辑函数

IF(如果)

  • 公式:IF( logical_text , Value_if_true , Value_if_false )

  • 释义:判断一个条件能否满足;如果满足返回一个值,如果不满足则返回另外一个值

  • 举例:某公司单次车费报销金额为最高为100元,可以用IF函数快速计算员工报销金额是否可通过审批

    公式=IF("车费"<=100,"通过","不通过") 计算结果=通过

IFS(如果)

  • 公式:IFS( logical_text , Value_if_true , Value_if_true )

  • 释义:检查是否满足一个或多个条件,且返回符合第一个 TRUE 条件的值。判断条件1不符合时,会进入判断条件2,如果判断条件1符合,则不会进入判断条件2

  • 举例:学生成绩等级为:90分及以上为“优”,80分及以上为“良”,60分及以上为“合格”,60分以下为“不合格”,小明成绩为77分,他属于哪个等级?

    公式=IFS(成绩>=90,"优",成绩>=80, “良”,成绩>=60,"合格",成绩字段<60"不合格") 计算结果=合格

AND(与)

  • 公式:AND(logical1, [logical2], ...)

  • 释义:在参数组中,任何一个参数逻辑值为 false,即返回 false;只有当所有参数逻辑值为 true,才返回 true(当所有条件都满足时,函数才会返回true)

  • 举例:学校评选成绩优秀的学生的标准是语文和数学都需要超过90分,小明数学成绩为91,语文成绩为88,用函数如何判断?

    公式=IF(AND(语文>=90,数学>=90,"优秀","非优秀") 计算结果=非优秀

OR(或)

  • 公式:OR(logical1, [logical2], ...)

  • 释义:任何一个参数逻辑值为 true,即返回 true;只有当所有逻辑参数值为 false,才返回 false(当任一条件都满足时,函数返回true)

  • 举例:学校评选成绩合格的学生的标准是语文和数学都需要超过80分,小明数学成绩为91,语文成绩为60,用函数如何判断:

    公式=IF(OR(语文>=80,数学>=80,"合格","不合格") 计算结果=合格


#### NOT(非)
  • 公式:NOT(logical1)

  • 释义:对参数逻辑值求反(如果符合,返回Flase)

  • 举例:微积分考试的通过成绩为60分,低于60分时需要补课,小明成绩为59分,他是否需要补考?

    公式=IF(NOT(成绩<60,"通过","补考") 计算结果=补考

>> 数学函数

ABS(绝对值)

  • 公式:ABS(number1)

  • 释义:返回参数的绝对值

  • 举例:计算-8的绝对值

    公式=ABS(-8) 计算结果=8

AVERAG(平均值)

  • 公式:AVERAGE(number1, [number2], …)

  • 释义:返回参数的平均值(算术平均值)

  • 举例:计算20,30,45,45的平均值

    公式=AVERAGE(20,30,45,45) 计算结果=35

COUNT(计数)

  • 公式:COUNT(value1, [value2], …)
  • 释义:统计参数个数
  • 举例:计算产品部有多少人?

image.png 公式=COUNT(A1:A10) 计算结果=9

COUNTIF(符合条件的个数)

  • 公式:COUNTIF(value1, [value2], …, criteria)

  • 释义:统计满足条件的参数个数

  • 举例:计算上题中,产品经理有多少人?

    公式=COUNTIF(A1:A10,"产品经理") 计算结果=6

MAX(最大值)

  • 公式:MAX(number1, [number2], …)

  • 释义:返回一组值中的最大值

  • 举例:计算20,30,45,45的最大值

    公式=MAX(20,30,45,45) 计算结果=45

MIN(最小值)

  • 公式:MIN(number1, [number2], …)

  • 释义:返回一组值中的最小值,用法同MAX函数

  • 举例:计算20,30,45,45的最大值

    公式=MIN(20,30,45,45) 计算结果=20

LARGE(返回第N个最大值)

  • 公式:LARGE(array,k)
  • 释义:返回数据集中第 k 个最大值
  • 举例:计算列表中最高分

image.png 公式=LARGE(B2:B7,1) 计算结果=7

SMALL(最小值)

  • 公式:SMALL(array,k)

  • 释义:返回数据集中第 k 个最小值,用法同LARGE函数

  • 举例:计算上题中倒数第二低分

    公式=SMALL(B2:B7,2) 计算结果=2

ROUND(四舍五入)

  • 公式:ROUND(number, num_digits)

  • 释义:将数字四舍五入到指定的位数,number为数值,num_digits为指定位数

  • 举例:计算5671除以23,结果保留2位小数

    公式=ROUND(5671/23,2) 计算结果=246.57

INT(取整)

  • 公式:INT(number)

  • 释义:将数字向下舍入到最接近的整数(向下取整)

  • 举例:23.91取整

    公式=INT(23.91) 计算结果=23

LOG(对数)

  • 公式:LOG(number, [base])

  • 释义:根据指定底数返回数字的对数,number为数字,base为底数

  • 举例:计算以 2 为底数时,8 的对数

    公式=LOG(8,2) 计算结果=3

MOD(余数)

  • 公式:MOD(number, divisor)

  • 释义:返回两数相除的余数, 结果的符号与除数相同。number:为被除数,divisor为除数。

  • 举例:计算23除以2的余数

    公式=MOD(23,2) 计算结果=1

PRODUCT(乘积)

  • 公式:PRODUCT(number1, [number2], …)

  • 释义:返回所有参与字段中数值的乘积

  • 举例:计算10*20的值

    公式=PRODUCT(10,20) 计算结果=200

SQRT(平方根)

  • 公式:SQRT(number)

  • 释义:返回正的平方根

  • 举例:计算100的平方根

    公式=SQRT(100) 计算结果=10

SUM(求和)

  • 公式:SUM(number1, [number2], …)
  • 释义:返回所有参与字段中数值的总和
  • 举例:计算所有人员的总分

image.png 公式=SUM(B2:B7) 计算结果=26

SUMIF(符合条件的数据求和)

  • 公式:SUMIF(range,criteria, sum_range)

  • 释义:统计表格中符合条件的数值,并求和

  • 举例:上题计算分数超过5分的人员的总成绩

    公式=SUMIF(B2:B7,“>5”) 计算结果=13

SUMPRODUCT(乘积之和)

  • 公式:SUMPRODUCT(array1, [array2])
  • 释义:在给定的数组中,将数组间对应的元素相乘,并返回乘积之和
  • 举例:计算购买所有水果的价格

image.png 公式=SUM(B2:B6,C2:C6) 计算结果=54.2

FIXE(舍入到指定小数位数)

  • 公式:FIXED(number, [decimals])
  • 释义:将数字舍入到指定的小数位数,以十进制数格式对该数进行格式设置,并以文本形式返回结果。
  • 举例:计算5671除以23,结果保留1位小数

公式=ROUND(5671/23,2)   计算结果=246.6

RMBUPPER(金额大写)

  • 公式:RMBUPPER(number)
  • 释义:把数字转换为大写的中文金额
  • 举例:把¥1234.34转化为大写金额

公式=RMBUPPER(1234.56)   计算结果=壹仟贰佰叁拾肆元伍角陆分

>> 文本函数

CONCATENATE(文本拼接)

  • 公式:CONCATENATE(text1,[text2], …)
  • 释义:将多个文本字符串合并成一个文本字符串
  • 举例:生成每个员工的薪资短信文案

公式=CONCATENATE(员工姓名,",您2的工资是",员工工资,"元")   计算结果=行一,您2月的工资是1000元

EXACT(字符串完全匹配)

  • 公式:CONCATENATE(text1,[text2], …)
  • 释义:比较两个字符串是否完全相同(区分大小写),完全相同则返回 true,否则返回 false
  • 举例:快速判断134534234343.231和134534234343.231是否一致

公式=(EXACT("134534234343.231",1345342343431.231)   计算结果=Flase

ISEMPTY(判断为空)

  • 公式:ISEMPTY(text)
  • 释义:判断值是否为空字符串、空对象或者空数组
  • 举例:考勤表中当日工作时长未填写,考勤标记为缺勤,否则标记为到岗

公式=IF(ISEMPTY(工作时长),"缺勤","到岗")   计算结果=缺勤

LEFT(取左侧字符)

  • 公式:LEFT(text, [num_chars])
  • 释义:从一个文本字符串的第一个字符开始返回指定个数的字符
  • 举例:身份证号码:330000198105111890前5位数字

公式=LEFT(身份证号码,5)   计算结果=33000

RIGH(取右侧字符)

  • 公式:RIGHT(text,[num_chars])
  • 释义:从一个文本字符串的最后一个字符开始返回指定个数的字符
  • 举例:身份证号码330000198105111890后4位数字

公式=RIGH(身份证号码,3)   计算结果=1890

LEN(文本字符个数)

  • 公式:LEN(text)
  • 释义:返回文本字符串中的字符个数
  • 举例:身份证号码330000198105111890,一共多少位?

公式=LEN(330000198105111890)   计算结果=18

LOWER(大写转小写)

  • 公式:LOWER(text)
  • 释义:将一个文本字符串中的所有大写字母转换为小写字母
  • 举例:把349Laa-cc-Q1UU转为小写

公式=LOWER(349Laa-cc-Q1UU)   计算结果=349laa-cc-q1uu

UPPER(小写转大写)

  • 公式:UPPER(text)
  • 释义:将一个文本字符串中的所有小写字母转换为大写字母
  • 举例:把349Laa-cc-Q1UU转为大写

公式=UPPER(349Laa-cc-Q1UU)   计算结果=349LAA-CC-Q1UU

REPLACE(替换)

  • 公式:REPLACE(oldtext, startnum, numchars, newtext)
  • 释义:根据指定的字符数,将部分文本字符串替换为不同的文本字符串,oldtext为需要替换的原文本,start_num为原文本中需要被替换为新文本的起始字符位置,num_chars为原文本中需要被替换的字符个数,new_text为新的替代内容。
  • 举例:隐藏电话号码13589001234中间4位

公式=REPLACE(13589001234,4,4,)   计算结果=1351234

REPT(重复)

  • 公式:REPT(text, number_times)
  • 释义:将文本重复一定次数,text为需要重复的文本内容,number_times为需要重复的次数
  • 举例:重要的事情说3遍!

公式=REPT(重要的事情说3遍!,3)   计算结果=重要的事情说3遍!重要的事情说3遍!重要的事情说3遍!

SEARCH(查询字符位置)

  • 公式:SEARCH( find_text, within_text, [start_num])

  • 释义:在第二个文本字符串中查找第一个文本字符串,并返回第一个文本字符串的起始位置的编号,该编号从第二个文本字符串的第一个字符算起。find_text为需要查到的文本,within_text为需要被查询的文本,start_num为查找的起始位置,缺省时默认为1

  • 举例:字母“r”在单词“surprise”的第几位

    公式=SEARCH( r,surprise)   计算结果=3

SPLIT(分隔字符串)

  • 公式:SPLIT(text, text_separator)
  • 释义:将文本按指定字符串分割成数组,text为要分割的文本,text_separator为分割字符
  • 举例:客户管理>客户列表>新增客户

公式=SPLIT("客户管理>客户列表>新增客户", ">")   计算结果=客户管理,客户列表,新增客户

TRIM(去空格)

  • 公式:TRIM(text)
  • 释义:删除字符串首尾的空格,但会保留字符串内部作为词与词之间分隔的空格
  • 举例:去掉文本中的空格( 今天下午 天气 特别好 )

公式=TRIM( 今天下午 天气 特别好 )   计算结果=今天下午 天气 很好

MID(截取字符串)

  • 公式:MID(text, start_num, num_chars)
  • 释义:从文本字符串中指定位置开始,返回指定长度的字符串。text为指定文本, start_num为截取起始位置, num_chars为截取长度
  • 举例:330000198105111890显示身份中的出生年份

公式=MID(“330000198105111890”,7,4)   计算结果=1981

TEX(数字转文本)

  • 公式:TEXT(num,text_format)

  • 释义:将数字转换成特定格式的文本,指定格式如下:

       #(数字占位符):小数点后数字如大于”#”的数量,则按”#”的位数四舍五入,小数点后数字如小于”#”的数量,则显示实<br />                际值<br />            0(数字占位补位符):小数点前的数据的长度大于占位符,则显示实际数据,如果小于占位符的数量,则用0补足;小数点<br />                后的数据的长度大于占位符,则按“0”的位数四舍五入,小数点后数字如小于“0”的数量,则用“0”补足
    
  • 举例:把212.92399以2位小数的格式显示

公式=TEXT(212.92399,“##.##”)   计算结果=212.92

TEXT(日期转文本)

  • 公式:TEXT(date, text_format)

  • 释义:将日期转换成特定格式的文本,指定格式如下:

image.png

  • 举例:2021/9/2改为年月日

公式=TEXT(2021/3/2, "yyyy年MM月dd日")   计算结果=2021年03月02日

VALUE(文本转数字)

  • 公式:VALUE(text)
  • 释义:将内容为数字的文本转化为数字格式,通常是用作数据已经录入需要变通计算的场景
  • 举例:把1转为数字格式

公式=VALUE(“1”)   计算结果=1

>> 日期函数

DATE(日期对象)

  • 公式:DATE(year,month,day,hour,minute)
  • 释义:将数字拼接成为日期对象
  • 举例:输出一个固定的日期

公式=DATE(2021,12,21)   计算结果=20211221

TIMESTAMP(日期对象转为时间戳)

  • 公式:TIMESTAMP(date)
  • 释义:将日期对象转换成时间戳,给日期组件赋值
  • 举例:把2021-03-18转化为时间戳

公式=TIMESTAMP(2021-03-18)   计算结果=1615996800

TIME(十进制时间格式)

  • 公式:TIME(hour, minute, second)
  • 释义:返回特定时间的十进制数字

TODAY(今天)

  • 公式:TODAY()
  • 释义:返回今天的日期,格式为:yyyy-MM-dd
  • 举例:获取今天的日期

公式=TODAY()   计算结果=2021-03-18

NOW(当前时间)

  • 公式:NOW()
  • 释义:返回当前时间,精确到时分秒,格式为yyyy-MM-dd hh:mm:ss
  • 举例:获取当前的时间

公式=NOW()   计算结果=2021-03-18 15:10:56

SYSTIME(当前服务器时间)

  • 公式:SYSTIME()
  • 释义:返回当前服务器时间,即使客户端的时间被人为调整了,SYSTIME函数不受影响,获取的仍然是服务器时间
  • 举例:获取系统服务器的日期

公式=SYSTIME()   计算结果=2021-03-18 15:13:10

YEAR(日期中的年)

  • 公式:YEAR()
  • 释义:返回日期中的年份
  • 举例:今年是哪年?

公式=YEAR()   计算结果=2021-03-18 15:13:10

MONTH(日期中的月)

  • 公式:MONTH()
  • 释义:返回日期中的月份
  • 举例:现在是几月份?

公式=MONTH(TODAY())   计算结果=3

DAY(日期中的天)

  • 公式:DAY()
  • 释义:返回日期中的天
  • 举例:今天是哪天?

公式=DAY(TODAY())   计算结果=18

HOUR(日期中的小时)

  • 公式:HOUR()
  • 释义:返回日期中的小时
  • 举例:打卡时间2021-03-18 18:34:08,计算日期中的时?

公式=HOUR(2021-03-18 18:34:08)   计算结果=18

MINUTE(日期中的分钟)

  • 公式:MINUTE()
  • 释义:返回日期中的分钟
  • 举例:打卡时间2021-03-18 18:34:08,计算日期中的分?

公式=MINUTE(2021-03-18 18:34:08)   计算结果=34

SECOND(日期中的秒)

  • 公式:SECOND()
  • 释义:返回日期中的秒
  • 举例:打卡时间2021-03-18 18:34:08,计算日期中的秒?

公式=SECOND(2021-03-18 18:34:08)   计算结果=08

NETWORKDAYS(工作日)

  • 公式:NETWORKDAYS(start_date, end_date, [holidays])
  • 释义:返回两个日期之间的工作日数。start_date为起始日期,end_date为终止日期,holidays指定假期,可不填
  • 举例:计算2021-03-18到2021-03-29中间的工作日

公式=NETWORKDAYS(DATE(2021,3,18), DATE(2021,3,19))   计算结果=7

WORKDAY(截止日期)

  • 公式:WORKDAYS(start_date, days, [holidays])
  • 释义:返回在与某个起始日期相隔指定工作日的日期,工作日不包括周末和专门指定的假日。start_date为起始日期,days为相隔的工作日天数,holidays指定假期,可不填
  • 举例:2021-03-18提交了订单,承诺7个工作日内发货,计算最晚发货日期计算日期中的秒?

公式=WORKDAY(DATE(2021,3,18),7)   计算结果=2021-03-29

DAYS(相差天数)

  • 公式:DAYS(end_timestamp, start_timestamp)
  • 释义:返回两个日期之间的天数
  • 举例:计算2020-12-30到2021-01-02的天数

公式=DAYS(DATE(2020,12,30), DATE(2021,01,02))   计算结果=3

DAYS360(以一年360天计算相差天数)

  • 公式:DAYS360(end_timestampstart_timestampmethod)
  • 释义:按照一年 360 天的算法(每个月以 30 天计,一年共计 12 个月),DAYS360 函数返回两个日期间相差的天数。
  • 举例:计算2020-12-30到2021-01-02的天数

公式=DAYS360(DATE(2020,12,30), DATE(2021,01,02))   计算结果=2

DATEDIF(时间差值)

  • 公式:DATEDIF(start_date, end_date, [unit])
  • 释义:计算两个时间的差值,根据需要,可以计算出相差的年数(“y”)、月数(“M”)、天数(“d”)、小时数(“h”)、分数(“m”)以及秒数(“s”),不填默认为d
  • 举例:计算2021-03-18到2021-03-20的天数

公式=DATEDIF(DATE(2020,12,30), DATE(2021,01,02),"d")   计算结果=2

DATEDELTA(增减指定天数)

  • 公式:DATEDELTA(timestamp, deltadays)
  • 释义:将指定日期加/减指定天数
  • 举例:2021-03-18生成的牛奶,3天保质期,到期时间为

公式=DATEDELTA(DATE(2021,12,30),3)   计算结果=2021-3-21

>> 高级函数

DISTANCE(距离)

  • 公式:DATEDELTA(timestamp, deltadays)
  • 释义:DISTANCE函数支持计算两个定位之间的距离
  • 举例:计算亮点之间的距离,单位为米

公式=DATEDELTA(定位1, 定位2)      计算结果=N米

UUID(随机码)

  • 公式:RECNO()
  • 释义:随机码生成器,可适用于随机流水号的使用场景等
  • 举例:随机生成一个系统编号

公式=UUID()   计算结果=IfduH93r-ufih2-3847Tg-fhvh34-35jdfhs

RECNO(累计码)

  • 公式:RECNO()
  • 释义:累计器,依据当前表单被新打开的次数进行不断累加计算,起始值为1,可用于流水号的自动生成
  • 举例:自定义工单编号

公式=CONCATENATE("WXGD",TEXT(TODAY(),"yyyyMMdd"),RIGHT(RECNO(),5))   计算结果=WXGD2021031800001