Appearance
在流程设计中,系统支持通过函数设定流程流转条件,也就是说当流程节点满足某一函数的计算值时,流程可进入下一节点。
可以使用函数的功能入口
流程链接线
图
表单字段(暂未开放)
函数使用规则
使用函数时有3要素:1、可用变量 2、系统支持的函数 3、运算符号
- 可用变量只指当前流程表单中【已保存】的表单字段,目前系统支持编辑公式的字段有 8 种类型:「单行文本」、「多行文本」、「数字」和「日期时间」、「下拉菜单」、「人员」、「电话」和「邮箱」。
图
目前系统支持函数运算符号有:
基础运算符:+(加)、-(减)、*(乘)、/(除)、 比较运算符:=(等于)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于)、!=(不等于) 图
目前系统支持多种类型的函数公式,函数书写时需用大写字母表示,输入函数时会自动联想,正确的函数会显示为紫红色。
函数公式使用说明
在使用函数时,要按照每个函数的要求,保证参数的数据类型的正确。 举例: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], …)
- 释义:统计参数个数
- 举例:计算产品部有多少人?
公式=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 个最大值
- 举例:计算列表中最高分
公式=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(乘积)
SQRT(平方根)
公式:SQRT(number)
释义:返回正的平方根
举例:计算100的平方根
公式=SQRT(100) 计算结果=10
SUM(求和)
- 公式:SUM(number1, [number2], …)
- 释义:返回所有参与字段中数值的总和
- 举例:计算所有人员的总分
公式=SUM(B2:B7) 计算结果=26
SUMIF(符合条件的数据求和)
公式:SUMIF(range,criteria, sum_range)
释义:统计表格中符合条件的数值,并求和
举例:上题计算分数超过5分的人员的总成绩
公式=SUMIF(B2:B7,“>5”) 计算结果=13
SUMPRODUCT(乘积之和)
- 公式:SUMPRODUCT(array1, [array2])
- 释义:在给定的数组中,将数组间对应的元素相乘,并返回乘积之和
- 举例:计算购买所有水果的价格
公式=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)
- 释义:将数字转换成特定格式的文本,指定格式如下:
#(数字占位符):小数点后数字如大于”#”的数量,则按”#”的位数四舍五入,小数点后数字如小于”#”的数量,则显示实际值 0(数字占位补位符):小数点前的数据的长度大于占位符,则显示实际数据,如果小于占位符的数量,则用0补足;小数点后的数据的长度大于占位符,则按“0”的位数四舍五入,小数点后数字如小于“0”的数量,则用“0”补足
- 举例:把212.92399以2位小数的格式显示
公式=TEXT(212.92399,“##.##”) 计算结果=212.92
TEXT(日期转文本)
- 公式:TEXT(date, text_format)
- 释义:将日期转换成特定格式的文本,指定格式如下:
- 举例: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_timestamp, start_timestamp, method)
- 释义:按照一年 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