80个系统函数
目前支持五大类型的函数:数学函数、日期函数、文本函数、逻辑函数、高级函数,80多种类型,基本满足日常的数据处理需求。
一、数学函数
SUM
功能: 返回多个数字的总和
用法: SUM( 数值1,数值2,数值3,... )
示例: SUM(3,6,8), 结果:17
如果有字段为空时,则按0计算。
AVERAGE
功能: 返回多个数字的的平均值
用法: AVERAGE( 数值1,数值2,数值3,... )
示例: AVERAGE(3,6,8) ,结果:5.67
为空为0时怎么计算
-
字段为空时
例如,3个字段求平均值,其中一个字段为空,另外两个分别是2和4,则平均值是(2+4)/2=3。
-
字段为0时
例如,3个字段求平均值,其中一个字段为0,另外两个分别是2和4,则平均值是(0+2+4)/3=2。
MIN
功能: 返回多个数字中的最小数
用法: MIN( 数值1,数值2,数值3,... )
示例: MIN(3,6,8), 结果:3
如果有字段为空时,则按0计算。
MAX
功能: 返回多个数字中的最大数
用法: MAX( 数值1,数值2,数值3,... )
示例: MAX(3,6,8), 结果:8
如果有字段为空时,则按0计算。
PRODUCT
功能: 返回多个数字的乘积
用法: PRODUCT( 数值1,数值2,数值3,... )
示例: PRODUCT(3,6,8), 结果:144
如果有字段为空时,则按0计算。
COUNTA
功能: 统计多个字段中,不为空的字段数量
用法: COUNTA( 字段1,字段2,字段3,... )
示例: COUNTA(单选题1,单选题2,单选题3) ,结果:2,表示有两个字段不为空。
ABS
功能: 计算数字的绝对值
用法: ABS( 数值 )
示例:
- ABS(-3.991) , 结果是:3.991

INT
功能: 返回永远小于等于原数字的最接近的整数
用法: INT( 数值 )
示例:
- INT(3.991) , 结果是:3;
- INT(-3.991) ,结果是:-4,
MOD
功能: 返回两数相除的余数
用法: MOD( 被除数,除数 )
参数说明: 两个参数都是必填的,可以是字段值,也可以是静态参数。
如果被除数字段为空时,则按0计算。 如果除数为空时或为0时,不计算。
ROUND、ROUNDUP、ROUNDDOWN
1、ROUND
功能: 按小数点指定保留位数,对数字进行四舍五入。
用法: ROUND( 数值字段或常数,保留小数位数)
配置示例: ROUND(3.14159,3),结果:3.142。如果第4位大于等于5,则进1位,如果第4位小于5,则直接舍去。
2、ROUNDUP
功能: 以绝对值增大的方向按指定位数舍入数字
用法: ROUNDUP( 数值字段或常数,保留小数位数 )
示例: ROUNDUP(3.14159,3) ,结果是:3.142。 无论3位数后的数字是否大于5,只要大于0都直接近1位。
3、ROUNDDOWN
功能: 以绝对值减小的方向按指定位数舍去数字
用法: ROUNDDOWN( 数值字段或常数,保留小数位数 )
示例: ROUNDDOWN(3.14159,3),结果:3.141。无论3位数后的数字否小于5都直接舍去。
注意: 1、ROUND、ROUNDDOWN 和 ROUNDUP函数中保留的位数要和数值字段的设置位数要保持一致,不然计算结果可能不合期望。
2、函数中保留位数的参数如果不写,则视为直接取整数。
CEILING、FLOOR
CEILING
功能: 以绝对值增大的方向按指定倍数舍入数字
用法: CEILING( 数值字段或常数,基数 )
示例: CEILING(9,2),结果:10,(大于9且是2的最小倍数)
FLOOR
功能: 以绝对值减小的方向按指定倍数舍入数字
用法: FLOOR( 数值字段或常数,基数 )
示例: CEILING(9,2),结果:8,(小于9且是2的最大倍数)
POWER
功能: 计算填入数值的次方
用法: POWER( 底数,指数 )
示例: POWER(4,3),结果:64。
LOG
功能: 计算填入数值的对数
用法: LOG( 真数,底数 )
示例: LOG(9,3),结果:2。
COUNTBLANK
功能: 计算参数中包含的空值个数
用法: COUNTBLANK( 数值1,数值2,数值3 )
示例: COUNTBLANK( 12 , , ),结果:2。
COUNTCHAR
功能: 统计文本字段的字符数量
用法: COUNTCHAR( 文本字段 )
RANDBETWEEN
功能: 随机返回两个数值之间的整数,负数也支持。
用法: RANDBETWEEN( 最小值字段,最大值字段 )
NUMBER
功 能: 将文本等类型的值转为数值
用法: NUMBER( 文本)
PI
功能:直接返回圆周率 π(圆的圆周与其直径的比)的近似值。该函数不需要任何参数。
语法:PI()
示例:调用圆周率常数
PI()
- 结果:返回数值 3.141592653589793
RADIANS
功能:将角度的度数转换为弧度。系统在执行三角函数(如 SIN、COS、TAN 等)计算时需要使用弧度作为参数,通常配合此函数进行前置转换。
语法:RADIANS(度)
示例:角度转弧度
将 90 度的角度值转换为对应的弧度值:
RADIANS(90)
- 结果:返回数值 1.5707963267949(90 度约为 1.5708 弧度)。
DEGREES
功能:将角度的弧度值转换为度数。与 RADIANS 函数的功能相反,通常用于将三角函数计算出的弧度结果转化为符合日常习惯的度数。
语法:DEGREES(弧度)
示例:弧度转度数
将圆周率 π 的弧度值转换为对应的度数:
DEGREES(PI())
- 结果:返回数值 180(π 弧度 = 180 度)。
SIN
功能:返回指定弧度表示的角度的正弦值。注意: 参数必须为弧度。如果是日常使用的角度,请务必先使用 RADIANS 函数将其转换为弧度。
语法:SIN(弧度)
示例:计算正弦值
计算 1 弧度的正弦值:
SIN(1)
- 结果:返回数值 0.841470984807897(即 1 弧度,约为 57.3 度的正弦值)。
拓展:角度计算
若要计算 30 度的正弦值,需嵌套转换函数:
SIN(RADIANS(30))(返回数值 0.5)。
COS
功能:返回以弧度表示的角度的余弦值。注意: 参数必须为弧度。如果是日常使用的角度(度数),请务必先使用 RADIANS 函数将其转换为弧度。
语法:COS(弧度)
示例:计算余弦值
计算 1 弧度的余弦值:
COS(1)
- 结果:返回数值 0.54030230586814(即 1 弧度,约为 57.3 度的余弦值)。
TAN
功能:返回以弧度表示的角度的正切值。注意: 参数必须为弧度。如果是日常使用的角度(度数),请务必先使用 RADIANS 函数将其转换为弧度。
语法:TAN(弧度)
示例:计算正切值
计算 1 弧度的正切值:
TAN(1)
- 结果:返回数值 1.5574077246549(即 1 弧度,约为 57.3 度的正切值)。
ASIN
功能:返回数值的反正弦值。返回的结果是角度的弧度值。若想将结果转换为日常使用的角度(度数),可配合使用 DEGREES 函数。
语法:ASIN(数值)
(注:输入的数值必须在 -1 到 1 之间)
示例:计算反正弦值
ASIN(0.84114709848079)
- 结果:返回近似值 0.999400825621613(即正弦值为 0.84114709848079 的角度的弧度值,约为 57.3 度)。
ACOS
功能:返回数值的反余弦值。返回的结果是角度的弧度值。若想将结果转换为日常使用的角度(度数),可配合使用 DEGREES 函数。
语法:ACOS(数值)
(注:输入的数值必须在 -1 到 1 之间)
示例:计算反余弦值
ACOS(0.54030230586814)
- 结果:返回数值 1。
ATAN
功能:返回数值的反正切值。返回的结果是角度的弧度值。若想将结果转换为日常使用的角度(度数),可配合使用 DEGREES 函数。
语法:ATAN(数值)
示例:计算反正切值
ATAN(1)
- 结果:返回弧度 incremental 值 0.785398163397448(转换为角度后为 45 度,其正切值为 1)。
NORM_S_DIST
功能:返回标准正态分布的累积函数(即其平均值为零,标准偏差为 1)。
语法:NORM_S_DIST(z, [累积])
- 参数说明
z:表示需要计算其分布的数值。累积:逻辑值,决定函数返回的形式。如果为true(默认值),返回累积分布函数;如果为false,返回概率密度函数。
示例:计算标准正态分布
NORM_S_DIST(1.96, true)
- 结果:返回数值 0.975(表示在标准正态分布中,Z 值小于等于 1.96 的累积概率为 97.5%)。
PERMUT
功能:计算从一组对象中选择特定数量对象时的排列数(考虑提取顺序)。
语法:PERMUT(总对象数, 选择对象数)
- 参数说明
总对象数:表示总对象数量,必须是非负整数。选择对象数:表示每次排列中选择的对象数量,也必须是非负整数。
示例:计算书籍排列方式
从 5 本书中选择 3 本进行排列:
PERMUT(5, 3)
- 结果:返回数值 60(表示共有 60 种不同的排列方式)。
COMBIN
功能:计算从一组对象中选择特定数量对象时的组合数(不考虑提取顺序)。
语法:COMBIN(总对象数, 选择对象数)
- 参数说明
总对象数:表示总对象数量,必须是非负整数。选择对象数:表示每次组合中选择的对象数量,也必须是非负整数。
示例:计算书籍组合方式
从 5 本书中选择 3 本进行组合(不计较书的先后顺序):
COMBIN(5, 3)
- 结果:返回数值 10(表示共有 10 种不同的组合方式)。
二、日期函数
NETWORKDAY
功能: 计算两个日期间工作日的天数。自动去除周六周日,如果特别的日期也算节假日,则可以指定去除。函数返回的是数字类型,数值字段、金额字段和文本字段可以使用此函数。
参数说明:
-
开始日期和结束日期都必填
-
去除的指定节假日非必填,如不填写,则只排除周六周日。如果排除指定节假日,则在[]中填写。
统计的日期:
统计的是晚于等于开始日期且早于等于结束日期的日期数。例如[5号,7号],统计到的是5号、6号和7号,共3个工作日。
用法: NETWORKDAY( 开始日期,结束日期,[节假日1,节假日2,..])
示例1:只排除法定周六周日
-
配置

NETWORKDAY( '2024-3-1','2024-3-4')
2号和3号是周六周日,结果得到1号和4号共2天.
示例2:除了周六周日,排除指定节假日
-
配置

NETWORKDAY( '2024-3-1','2024-3-6',['2024-3-4','2024-3-5'])
结果是
2天。 2号3号周六周日,再排除4号和5号,只有1号和6号是工作日了。
MINUTE、HOUR
功能: 获取指定日期时间的小时数和分钟数。
用法:
和获取年月日的方法相同
-
HOUR(
日期时间)获取到0-23的数字
-
MINUTE(
日期时间)获取到0-59的数字

WEEKDAY
功能: 获取指定日期的是周几,1到7的数字,其中周一是1,周日是7。
用法: WEEKDAY( 日期时间 )

DAY、MONTH、YEAR
功能: 获取指定日期时间的年份、月份、日
用法:
三个函数用法相同
-
DAY (
日期)获取到1-31的数字
-
MONTH (
日期)获取到1-12的数字
-
YEAR (
日期)获取到具体年份,如2022-12-12,获取到数字 2022
配置:

效果:

DATENOW
功能: 返回当前时间, 日期时间字段和文本字段可使用此函数。
用法: DATENOW() ,无参数。
-
配置

-
效果

DATEADD
功能: 为一个日期时间,增加一段时间得到新的日期或时间
用法: DATEADD( 日期,'加减时长', 输出格式 )
参数:
-
加减时长 ,为文本类型,格式为: "加减符号" + “数字”+ "时间单位"
- 时间单位:'Y'-年;'M'-月;'d'-天;'h'-小时;'m'-分钟;
举例: '-1d' 表示减去1天, '+3m'表示增加三分钟,'+3M' 表示增加是3个月
-
输出格式 数值类型,1代表日期格式,2代表日期+时间格式
示例1: 根据入职日期,得出3个月后的转正日期。
公式:DATEADD( '2021-3-6','+3M',1)
结果是 2021-6-6
示例2: 根据工单提交时间,计算得出1个小时后的待办提醒时间。
-
公式:DATEADD( '2021-3-6 9:00','+1h',2)
-
结果是
2021-3-6 10:00
更多示例:
-
得出当前日期所在周的周一日期
- DATEADD(DATENOW(),CONCAT('-',WEEKDAY(DATENOW())-1,'d'),1)
-
得出当前日期所在周的周日日期
- DATEADD(DATENOW(),CONCAT('+',7-WEEKDAY(DATENOW()),'d'),1)
特别提醒
如果增加的时差不是固定参数,则需要使用CONCAT()拼接组合,例如:CONCAT('+',计算结果得出的数字,'d')
DATEIF
功能: 计算两个日期间的时差(由于输入内容带单位,输出的是文本格式)
用法: DATEIF( 开始日期,结束日期,1,'输出单位' )
参数:
-
开始日期和结束日期 必填,可以是日期字段,也可以是静态日期参数。
-
格式化方式,必填,输入1或者2,如果字段本身有时间部分,则按实际计算,如果没有时间部分,则按格式化时间计算。
-
格式化1,开始日期的时间格式为00:00 结束日期的时间格式为 00:00
-
格式化2,开始日期的时间格式为00:00 结束日期的时间格式为 24:00
-
-
输出单位,非必填,'Y'-年;'M'-月;'d'-天;'h'-小时;'m'-分钟;如果不指定这个参数,则默认为'd'
示例1:
-
DATEIF( '2021-12-1','2021-12-2',1,'d' )
格式方式1,即计算2021-12-1 00:00 和 2021-12-2 00:00 的天数,结果是1
-
DATEIF( '2021-12-1','2021-12-2',2,'d' )
格式方式2,即计算2021-12-1 00:00 和 2021-12-2 24:00 的天数,结果是2
-
DATEIF( '2021-12-1','2021-12-2 12:00',2,'d' )
格式方式1,即计算2021-12-1 00:00 和 2021-12-2 12:00 的天数,结果是1,因为不满2天,向下取整。
配置和效果
-
时差1

-
时差2

-
效果:

如何使用计算结果再进一步进行数据计算
例如,DATEIF函数得到的结果是6天,需要再+5,想得到11。如果直接相加,得到的是 “6天5”这样一个内容。因此,我们需要先把单位天去掉再处理。
参考公式:NUMBER(FIND(DATEIF('2021-3-8','2021-3-14',2,'d'),"","天"))+5
先用FIND函数把天去掉,然后用NUMBER转换为数字格式。
WEEKNUM
功能: WEEKNUM 函数用于返回指定日期在当年中所处的周数(即一年中的第几周)。
用法: WEEKNUM(日期, [返回类型])
参数说明
- 日期(必填):一个有效的日期格式的值。
- [返回类型](选填):指定周数的计算方式,默认值为 1。
- 1 表示一周从周日开始,周日为一周的第一天。
- 2 表示 一周从周一开始,周一为一周的第一天。
使用示例
- 公式:WEEKNUM('2025-02-19', 2)
- 结果:8
- 说明:返回 2025 年 2 月 19 日是该年份的第 8 周(按周一作为一周的第一天开始计算)。
WORKDAY
功能: WORKDAY 函数用于计算从某个指定日期开始,经过指定工作日天数之前或之后的特定日期值。计算时会自动排除周末(默认周六和周日)以及指定的节假日。
用法:WORKDAY(开始日期, 天数, [假期列表])
参数说明
- 开始日期(必填):一个有效的日期格式,作为计算的起点。
- 天数(必填):需要推算的工作日天数。
- 正数:表示向后推算天数(未来)。
- 负数:表示向前推算天数(过去)。
- [假期列表](选填):一个可选的日期列表或数组,明确指定哪些日期是需要额外排除的法定节假日。
使用示例
- 公式:WORKDAY('2025-02-19', 10, ['2025-02-23', '2025-02-28'])
- 结果:2025-03-06
- 说明:从 2025 年 2 月 19 日开始向后推算 10 个工作日,扣除期间的周六日,并额外扣除指定的假期(如 2 月 23 日和 2 月 28 日),最终得到的结果日期为 2025 年 3 月 6 日。