35种系统函数介绍
35种系统函数: 默认支持35中系统函数,分别在
数学函数、日期函数、文本函数、逻辑函数四个区域内,基本满足大部分场景需求
一、数学函数
SUM
- 功能: 计算参数之和
- 用法: SUM(数值1,数值2,数值3,...)
- 示例: SUM(10,20,30),结果 60
-
SUM字段求和
-
字段直接求和
-
如果字段为空时将会以0计算
AVERAGE
- 功能: 计算参数的平均值
- 用法: AVERAGE(数值1,数值2,数值3,...)
- 示例: AVERAGE(10,20,30) ,结果:20
如果字段为空时将会以0计算
MAX
- 功能: 计算参数最大值
- 用法: MAX(数值1,数值2,数值3,...)
- 示例: MAX(10,20,30) ,结果:30
如果字段为空时将会以0计算
MIN
- 功能: 计算参数最小值
- 用法: MAX(数值1,数值2,数值3,...)
- 示例: MAX(10,20,30) ,结果:10
如果字段为空时将会以0计算
PRODUCT
-
功能: 计算参数相乘的积
-
用法: PRODUCT(数值1,数值2,数值3,...)
-
示例: PRODUCT(1,5,9) ,结果:45
- PRODUCT函数求积
- 参数直接相乘求积
如果字段为空时将会以0计算
COUNTA
- 功能: 计算参数中包含非空值的个数
- 用法: COUNTA(字段1,字段2,字段3,...)
- 示例: COUNTA(文本,文本,文本) ,结果:2。代表只有两个值不为空
-
配置
-
效果
-
ABS
- 功能: 计算数字的绝对值
- 用法: ABS(数值)
- 示例: ABS(-7) ,结果:7
如果字段为空时将会以0计算
INT
- 功能: 返回永远小于等于原数字的最接近的整数
- 用法: INT(数值)
- 示例:
- INT(-3.1415926) 返回结果 -4
- INT(3.1415926) 返回结果 3
如果字段为空时将会以0计算
MOD
- 功能: 返回两数相除的余数
- 用法: MOD(被除数,除数)
- 示例: MOD(15,4) ,结果:3
如果被除数字段为空时将会以0计算,如果除数为0时不计算,被除数除数均为数值
ROUND
- 功能: 按指定位数对数字进行四舍五入
- 用法: ROUND(数值,位数)
- 示例: ROUND(3.1415926,4) ,结果:3.1416。如果小数第五位大于等于5,则第四位小数进一位;如果小数第五位小于5,则直接舍去
ROUNDUP
- 功能: 以绝对值增大的方向按指定位数舍入数字
- 用法: ROUNDUP(数值,位数)
- 示例: ROUNDUP(3.1415926,4) ,结果:3.1416。如果小数第五位大于0,那么就会直接进一位
ROUNDDOWN
- 功能: 以绝对值减小的方向按指定位数舍入数字
- 用法: ROUNDDOWN(数值,位数)
- 示例: ROUNDDOWN(3.1415926,4) ,结果:3.1415。无论第五位是否大于小于5,均会舍去
NUMBER
-
功能: 将文本类型的值转成数值
-
用法: NUMBER(文本)
-
示例:
- 利用NUMBER函数,如 NUMBER('10') + 5 ,结果:15
- 文本+数值的模式,如'10'+5 结果 105
- 效果
文本类型的值必须为数值,否则转换失败
二、日期函数
DAY
- 功能: 返回日期的天数,返回值范围在 1 - 31 之间
- 用法: DAY(文本)
- 示例: DAY('2023-05-12'),结果:12
MONTH
- 功能: 返回日期的月份,返回值范围在 1 - 12 之间
- 用法: MONTH(文本)
- 示例: MONTH('2023-05-12'),结果:5
YEAR
- 功能: 返回日期的四位年份
- 用法: YEAR(文本)
- 示例: YEAR('2023-05-12'),结果:2023
DATEADD
- 功能: 对某个日期添加/减去一定时间段,再对计算结果设置格式
- 用法: DATEADD(初始日期,'计算式',输出格式)
- 参数:
- 初始日期:必须填写,可以为日期字段,也可以是静态数据(文本类型)
- 计算式:对初始日期日期进行加减操作,文本类型,需要加上单引号,'+'或'-'代表添加或减去;时间段的单位,'Y'代表年、'M'代表月、'd'代表天、'h'代表小时、'm'代表分钟;也可以添加或减去一个时间字段 例如:'+1Y' 代表初始日期加上一年,'-1Y'代表初始日期减去一年
- 输出格式:数值格式,1代表日期格式,2代表日期时间格式;如果不指定这个参数,则默认是类型1
- 示例:
- 示例一:根据出差日期,计算出3天后的返回时间 DATEADD('2023-05-15','+3d',1),结果:2023-05-18
- 示例二:根据拜访时间,计算出3个小时后的离开时间 DATEADD('2023-05-15 9:30','+3h',2),结果:2023-05-15 11:30
- 示例三:根据生产日期和保质期算出有效期至 DATEADD('生产日期',CONCAT('+',保质期,'d'),1)
[warning] 如果计算式(保质期)不是静态数据的时候,我们会用的CONCAT拼接函数,使其动态改变数据
DATEIF
- 功能: 计算两个日期/时间之间的时长,并精确到年、月、天、小时或分
- 用法: DATEIF(开始日期,结束日期,格式化方式,输出单位)
- 参数:
- 开始日期、结束日期必须填写,可以为日期字段,也可以是静态数据(文本类型)
- 格式化方式:必填选项,可以填写1或者2,如果字段是日期时间,则按实际计算,如果只有日期,则按格式化时间计算。 1-开始日期00:00结束日期00:00 2-开始日期00:00结束日期24:00
- 输出单位:非必填,'Y'-年;'M'-月;'d'-天;'h'-小时;'m'-分钟;如果不指定这个参数,则默认为'd'
- 示例:
- 示例一:DATEIF('2023-05-15','2023-05-22',1,'d') ,结果:7天 格式方式填写1,即计算2023-05-15 00:00 和 2023-05-22 00:00 相差的天数,结果是7天
- 示例二:DATEIF('2023-05-15','2023-05-22',2,'d') ,结果:8天 格式方式填写2,即计算2023-05-15 00:00 和 2023-05-22 24:00 相差的天数,结果是8天
- 示例三:DATEIF('2023-05-15','2023-05-22 9:30',2,'d') ,结果:7天 格式方式填写2,即计算2023-05-15 00:00 和 2023-05-22 9:30 相差的天数,结果是7天,因为9:30不满足一天(24:00),向下取整
DATENOW
-
功能: 返回当前时间
-
用法: DATENOW()
-
示例:
- 配置
- 效果
DATEFORMAT
- 功能: 格式化当前日期
- 用法: DATEFORMAT(日期,格式)
- 参数:
- 格式:'YYYY'代表年、'MM'代表月、'DD'代表天、'HH'代表小时、'mm'代表分钟、'ss'代表秒
- 其他格式:moment文档
- 示例: DATEFORMAT('2023-05-15','YYYY年'),结果 2023年
三、文本函数
CONCAT
- 功能: 将两个或多个文本合并为一个整体
- 用法: CONCAT(文本1,文本2)
- 示例: CONCAT('你好','世界','!'),结果 你好世界!
REPLACE
- 功能: 使用指定字符替换指定位置上的内容
- 用法: REPLACE(原文本,开始位置,字符数,替换文本)
- 参数:
- 开始位置:1代表从第一个字符开始,且第一个字符也要被替换
- 字符数:需要替换的字符数,字母、汉字、数字、空格都记为1个字符
- 示例:
REPLACE('131251199312052332',7,8,'********')将身份证号码第7-15位,共8个字符,替换为********结果:131251********2332
LEFT
- 功能: 从文本最左侧起提取指定个数的字符
- 用法: LEFT(原文本,字符数)
- 参数:
- 原文本:必须填写
- 字符数:需要提取的字符数,字母、汉字、数字、空格都记为1个字符
- 示例: LEFT('17611111111111',3), 表示从手机号左侧截取三位,结果:176
RIGHT
- 功能: 从文本最右侧起提取指定个数的字符
- 用法: RIGHT(原文本,字符数)
- 参数:
- 原文本:必须填写
- 字符数:需要提取的字符数,字母、汉字、数字、空格都记为1个字符
- 示例: RIGHT('17611111111111',3), 表示从手机号右侧截取三位,结果:111
TRIM
- 功能: 删除文本首尾的空格
- 用法: TRIM(原文本)
- 示例: TRIM(' 北京 ',3),结果:北京
CLEAN
- 功能: 删除文本中所有空格
- 用法: CLEAN(原文本)
- 示例: CLEAN(' 北 京 ',3),结果:北京
FIND
-
功能: 返回指定间隔符之间的文本内容(只返回从左到右查找到的第一个)
-
用法: FIND(原文本, 开始字符, 结束字符)
-
参数:
- 开始字符:如果是空,表示从第一个字符开始返回
- 结束字符:如果是空,表示返回直至最后一个字符
-
示例:
- 示例一:FIND('1天23小时15分钟','','天'),结果:1
说明:开始字符为空,从第一个字符开始查找,遇到
天结束。 - 示例二:FIND('1天23小时15分钟','天',''),结果:23小时15分钟
说明:开始字符为
天,从第一个字符开始查找,遇到空结束。
- 示例一:FIND('1天23小时15分钟','','天'),结果:1
说明:开始字符为空,从第一个字符开始查找,遇到
SPLIT
- 功能: 按照指定的间隔符分割文本,将分割结果打包成数组返回
- 用法: SPLIT(原文本,间隔符)
- 参数:
- 间隔符:如果为空,将分割每一个字符
- 示例: SPLIT("HX045-SZ190-NZ021-LS097","-"),结果:'HX045,SZ190,NZ021,LS097'
JOIN
- 功能: 按照指定的间隔符把数组元素拼接成文本
- 用法: JOIN(数组,间隔符)
- 参数: 间隔符:字符将以间隔符进行拼接
- 示例: JOIN(['产品部','销售部','研发部'],'-'),结果:产品部-销售部-研发部
STRING
- 功能: 将数值等类型的值转为文本
- 用法: STRING(数值)
- 示例: STRING(-1)+STRING(5),结果:'-15'
四、判断函数
IF
- 功能: 设置判断条件,然后根据判断结果TRUE或FALSE来返回不同的文本
- 用法: IF(表达式,成立时输出,不成立时输出)
- 示例:
- 示例一:根据考试成绩判断及不及格 IF(考试成绩>=60,'及格','不及格'),结果:如果考试成绩大于等于60,返回及格,否则返回不及格
- 示例二:更加详细划分,考试成绩大于等于80优秀,大于等于60为及格,小于60为不及格 IF(考试成绩>=60,IF(考试成绩>=80,'优秀','及格'),'不及格')
OR
- 功能: 判断多个条件中是否有任意一个条件成立,只要有一个参数为逻辑值TRUE,OR函数就返回TRUE。如果所有参数都为逻辑值FALSE,OR函数才返回FALSE
- 用法: OR(表达式1,表达式2,表达式3,...)
- 示例: 验证语数英三门课程是否有任何一门没有及格(实际只有两门及格,三门成绩合格时才会返回FALSE)
OR(语文分数<=60,英语分数<=60,数学分数<=60),结果:TRUE
AND
- 功能: 判断多个条件是否同时成立,如果所有参数都为逻辑值TRUE,AND函数将返回TRUE,只要其中一个参数为逻辑值FALSE,AND函数就返回FALSE
- 用法: AND(表达式1,表达式2,表达式3,...)
- 示例: 验证语数英三门课程是否都及格(实际只有两门及格,只有三门成绩都合格的时候才会返回TRUE)
- AND(语文分数>=60,英语分数>=60,数学分数>=60) ,结果:FALSE
ISBLANK
- 功能: 判断文本是否为空,如果为空,返回TRUE,否则返回FALSE
- 用法: ISBLANK(文本)
- 示例: ISBLANK(''),结果:TRUE
INCLUDE
- 功能: 判断一个文本中是否包含指定的字符内容,包含返回TRUE,不包含返回FALSE
- 用法: INCLUDE(原文本,检索的字符)
- 示例: INCLUDE("北京市朝阳区",'朝阳'),结果:TRUE