作者:杨雨虹 历史版本:1 最后编辑:杨雨虹 更新时间:2026-09-07 16:48
概述
在报表中,函数是计算的主要组成部分。
插入函数
方法一:选中单元格,在菜单工具栏点击插入公式。

方法二:右键单元格,点击【单元格元素】-【插入公式】

方法三:选中单元格,在右侧属性面板选中【单元格元素】-【插入公式】

方法四:双击单元格/插入文本,输入“=函数名()”,用法和excel相同,括号内可以是具体的数字、单元格号。

函数的基本用法
计算数值
弹出公式定义弹窗,在文本编辑框中输入公式,确定
预览结果:
计算数据列
【示例1】计算多个数据列的和,在空单元格输入=函数(单元格1,单元格2,单元格3)

预览结果:
【示例2】计算单个数据列的总和,即将该列数据相加。

预览结果:
【示例3】计算多个数据列的总和,即将多列数据相加。

预览结果:
- 需要注意:显示值无法用于计算!

函数汇总
1. 数学函数
| 函数名 | 说明 | 用法 | 示例 |
|---|---|---|---|
| ABS | 获取一个数的绝对值 | ABS(数字) | ABS(-8)=8 |
| AVG | 计算一组数值的平均值 | AVG(数值1,数值2,…) | AVG(1,3)=2 |
| CEIL | 向上取整(同CEILING) | CEIL(数字) | CEIL(2.1)=3 |
| CEILING | 向上取整 | CEILING(数字) | CEILING(2.1)=3 |
| CHN | 数字转为中文大写 | CHN(数字) | CHN(123)=壹佰贰拾叁 |
| COUNT | 统计非空数据的条数 | COUNT(值1,值2,…) | COUNT(1,””,3)=2 |
| COS | 计算余弦值(参数为弧度) | COS(弧度) | COS(0)=1 |
| COUNTIF | 按条件统计满足条件的数量 | COUNTIF(范围,条件) | COUNTIF(A1:A10,”>60”) |
| DIVISION | 除法运算,避免除零 | DIVISION(被除数,除数) | DIVISION(10,2)=5 |
| EXPR | 执行表达式计算 | EXPR(表达式字符串) | EXPR(“1+2*3”)=7 |
| FIXED | 数字格式化,保留指定小数位 | FIXED(数字,小数位数) | FIXED(3.1415,2)=3.14 |
| INT | 向下取整,舍弃小数部分 | INT(数字) | INT(2.9)=2 |
| LARGE | 取数据中第N大的值 | LARGE(数据集,N) | LARGE([1,5,3],2)=3 |
| LOG | 计算指定底数的对数 | LOG(数字,底数) | LOG(8,2)=3 |
| LOG10 | 计算以10为底的对数 | LOG10(数字) | LOG10(100)=2 |
| MAX | 取一组数的最大值 | MAX(数值1,数值2,…) | MAX(2,7,1)=7 |
| MEDIAN | 计算一组数的中位数 | MEDIAN(数值1,数值2,…) | MEDIAN(1,2,3)=2 |
| MIN | 取一组数的最小值 | MIN(数值1,数值2,…) | MIN(2,7,1)=1 |
| MOD | 求两个数相除的余数 | MOD(被除数,除数) | MOD(7,3)=1 |
| MODE | 获取一组数的众数(出现频率最高) | MODE(数值1,数值2,…) | MODE([1,2,2,3])=2 |
| POW | 幂运算,求数字的N次方 | POW(底数,指数) | POW(2,3)=8 |
| PRODUCT | 计算多个数字的乘积 | PRODUCT(数值1,数值2,…) | PRODUCT(2,3,4)=24 |
| RANDOM | 生成0~1之间的随机小数 | RANDOM() | RANDOM()=0.623 |
| RMB | 数字转为人民币大写 | RMB(数字) | RMB(12.5)=人民币壹拾贰元伍角 |
| ROUND | 四舍五入保留指定小数位 | ROUND(数字,小数位数) | ROUND(3.145,2)=3.15 |
| SIN | 计算正弦值(参数弧度) | SIN(弧度) | SIN(PI()/2)=1 |
| SMALL | 取数据中第N小的值 | SMALL(数据集,N) | SMALL([1,5,3],2)=3 |
| SQRT | 计算平方根 | SQRT(数字) | SQRT(16)=4 |
| STDEVP | 计算总体标准差 | STDEVP(数值1,数值2,…) | STDEVP(1,2,3)=0.816 |
| SUBTRACT | 减法运算 | SUBTRACT(被减数,减数) | SUBTRACT(10,3)=7 |
| SUM | 对一组数值求和 | SUM(数值1,数值2,…) | SUM(1,2,3)=6 |
| SUMPRODUCT | 数组对应元素相乘后求和 | SUMPRODUCT(数组1,数组2) | SUMPRODUCT([1,2],[3,4])=11 |
| VARA | 计算样本方差(包含文本逻辑值) | VARA(值1,值2,…) | VARA(1,2,4)=2.333 |
2. 文本函数
| 函数名 | 说明 | 用法 | 示例 |
|---|---|---|---|
| CHAR | 根据字符编码返回对应字符 | CHAR(编码数字) | CHAR(65)=A |
| CONCAT | 拼接多个文本字符串 | CONCAT(文本1,文本2,…) | CONCAT(“Hello”,”World”)=HelloWorld |
| EXACT | 区分大小写比较两个文本是否完全相等,相等返回true,否则false | EXACT(文本1,文本2) | EXACT(“Abc”,”abc”)=false |
| INDEXOF | 查找子字符串首次出现的索引位置,未找到返回-1 | INDEXOF(原文本,查找文本) | INDEXOF(“abcde”,”cd”)=2 |
| ISEMPTY | 判断内容是否为空,为空返回true,不为空返回false | ISEMPTY(值) | ISEMPTY(“”)=true |
| LEFT | 从文本左侧截取指定长度字符 | LEFT(文本,截取长度) | LEFT(“ABCD”,2)=AB |
| LENGTH | 获取文本字符串的字符长度 | LENGTH(文本) | LENGTH(“测试”)=2 |
| LOWER | 将英文全部转为小写 | LOWER(文本) | LOWER(“ABC”)=abc |
| MID | 从指定起始位置截取指定长度的文本 | MID(文本,起始位置,截取长度) | MID(“ABCDE”,2,2)=BC |
| REPLACE | 替换字符串中指定位置的字符为新文本 | REPLACE(原文本,起始位置,替换长度,新文本) | REPLACE(“ABCD”,2,2,”XX”)=AXXD |
| REPT | 将文本重复指定次数 | REPT(文本,重复次数) | REPT(“A”,3)=AAA |
| RIGHT | 从文本右侧截取指定长度字符 | RIGHT(文本,截取长度) | RIGHT(“ABCD”,2)=CD |
| SEARCH | 查找子字符串的起始位置(不区分大小写) | SEARCH(查找文本,原文本) | SEARCH(“bc”,”ABCD”)=2 |
| SPLIT | 按分隔符将文本拆分为数组 | SPLIT(文本,分隔符) | SPLIT(“a,b,c”,”,”)=[“a”,”b”,”c”] |
| SUBSTRING | 截取字符串,从起始索引到结束索引 | SUBSTRING(文本,起始索引,结束索引) | SUBSTRING(“ABCDE”,1,3)=BC |
| TAN | 计算正切值(参数为弧度) | TAN(弧度) | TAN(0)=0 |
| TEXT | 将数字按指定格式转为文本 | TEXT(数字,格式串) | TEXT(123,”0.00”)=123.00 |
| TRIM | 去除文本首尾空格 | TRIM(文本) | TRIM(“ abc “)=abc |
| UPPER | 将英文全部转为大写 | UPPER(文本) | UPPER(“abc”)=ABC |
| VALUE | 将文本格式数字转为数值 | VALUE(文本数字) | VALUE(“123”)=123 |
3. 日期函数
| 函数名 | 说明 | 用法 | 示例 |
|---|---|---|---|
| DATE | 根据年月日生成日期对象 | DATE(年,月,日) | DATE(2026,8,17)=2026‑08‑17 |
| DATEDELTA | 对日期做增减偏移(加减年月日时分秒) | DATEDELTA(原日期,偏移量,单位) | DATEDELTA(TODAY(),1,”day”)=明日日期 |
| DAY | 获取日期中的“日”部分(1‑31) | DAY(日期) | DAY(DATE(2026,8,17))=17 |
| DAYS | 计算两个日期相差的总天数 | DAYS(结束日期,开始日期) | DAYS(“2026‑08‑20”,”2026‑08‑17”)=3 |
| DAYS360 | 按一年360天规则计算两日期间隔天数 | DAYS360(开始日期,结束日期) | DAYS360(“2026‑01‑01”,”2026‑03‑31”)=89 |
| EDATE | 返回指定日期前后N个月的日期 | EDATE(日期,月数) | EDATE(“2026‑08‑17”,1)=2026‑09‑17 |
| HOUR | 获取时间中的小时部分(0‑23) | HOUR(时间) | HOUR(NOW())=14 |
| ISOWEEKNUM | 获取日期对应的ISO标准周序号 | ISOWEEKNUM(日期) | ISOWEEKNUM(“2026‑01‑05”)=2 |
| MINUTE | 获取时间的分钟部分(0‑59) | MINUTE(时间) | MINUTE(NOW())=30 |
| MONTH | 获取日期的月份(1‑12) | MONTH(日期) | MONTH(“2026‑08‑17”)=8 |
| NOW | 获取系统当前日期+时间 | NOW() | NOW()=2026‑08‑17 14:30:00 |
| SECOND | 获取时间的秒数部分(0‑59) | SECOND(时间) | SECOND(NOW())=20 |
| SYSTIME | 获取系统当前时间戳/系统时间 | SYSTIME() | SYSTIME()=1786985400000 |
| TIME | 根据时分秒生成时间对象 | TIME(时,分,秒) | TIME(9,30,0)=09:30:00 |
| TIMESTAMP | 日期时间转为时间戳(毫秒) | TIMESTAMP(日期) | TIMESTAMP(“2026‑08‑17”)=1786924800000 |
| TODAY | 获取系统当前日期(不带时分秒) | TODAY() | TODAY()=2026‑08‑17 |
| WEEK | 获取日期为星期几(1‑7,周一为1) | WEEK(日期) | WEEK(“2026‑08‑17”)=1 |
| WEEKNUM | 获取日期属于本年的第几周 | WEEKNUM(日期) | WEEKNUM(“2026‑08‑17”)=33 |
| YEAR | 获取日期的年份 | YEAR(日期) | YEAR(“2026‑08‑17”)=2026 |
| FORMAT | 日期/数字按格式转为文本 | FORMAT(值,格式模板) | FORMAT(TODAY(),”yyyy‑MM‑dd”)=”2026‑08‑17” |
| PARSE | 将文本解析转换为日期对象 | PARSE(日期文本) | PARSE(“2026‑08‑17”)=日期对象 |
4. 逻辑函数
| 函数名 | 说明 | 用法 | 示例 |
|---|---|---|---|
| GETAND | 逻辑与,全部条件为真返回true,否则false | GETAND(条件1,条件2,…) | GETAND(1>0,2>1)=true |
| GETFALSE | 返回布尔假值false | GETFALSE() | GETFALSE()=false |
| GETIF | 条件判断,条件成立返回真值,不成立返回假值 | GETIF(条件,真值,假值) | GETIF(5>3,”是”,”否”)=是 |
| GETNOT | 逻辑非,对布尔值取反 | GETNOT(条件) | GETNOT(1>0)=false |
| GETOR | 逻辑或,任意一个条件为真返回true,否则false | GETOR(条件1,条件2,…) | GETOR(1>5,2>1)=true |
| GETTRUE | 返回布尔真值true | GETTRUE() | GETTRUE()=true |
| GETXOR | 异或逻辑,两个条件真假不一致返回true,一致返回false | GETXOR(条件1,条件2) | GETXOR(1>0,2>5)=true |
5. 高级函数
| 函数名 | 说明 | 用法 | 示例 |
|---|---|---|---|
| UUID | 生成全局唯一UUID字符串 | UUID() | UUID()=”550e8400‑e29b‑41d4‑a716‑446655440000” |
| SEQ | 生成自增长序列编号 | SEQ(序列标识) | SEQ(“order”)=1、2、3依次递增 |
6. 表格函数
| 函数名 | 说明 | 用法 | 示例 |
|---|---|---|---|
| COLUMN | 获取当前单元格所在列序号 | COLUMN() | COLUMN()=2 |
| FLOOR | 向下取整,向数值更小方向取整数 | FLOOR(数字) | FLOOR(3.9)=3 |
| FORMATDATE | 将日期按指定格式转为文本 | FORMATDATE(日期,格式模板) | FORMATDATE(TODAY(),”yyyy‑MM‑dd”)=”2026‑08‑17” |
| FORMATNUMBER | 数字格式化,设置小数、千分位等 | FORMATNUMBER(数字,格式) | FORMATNUMBER(1234.56,”#,##0.00”)=”1,234.56” |
| LIST | 构建数组/列表集合 | LIST(值1,值2,…) | LIST(10,20,30)=[10,20,30] |
| ORDER | 数据排序,指定字段与升降序 | ORDER(数据集,排序字段,排序方向) | ORDER(table,”amount”,”desc”) |
| PAGE | 获取当前页码 | PAGE() | PAGE()=1 |
| PAGES | 获取总页数 | PAGES() | PAGES()=5 |
| PCOUNT | 分页统计,统计分页内数据行数 | PCOUNT(数据集) | PCOUNT(table)=20 |
| PMAX | 分页范围内求最大值 | PMAX(数据集,字段) | PMAX(table,”score”)=99 |
| PMIN | 分页范围内求最小值 | PMIN(数据集,字段) | PMIN(table,”score”)=60 |
| PSUM | 分页范围内求和 | PSUM(数据集,字段) | PSUM(table,”amount”)=12000 |
| ROW | 获取当前行序号 | ROW() | ROW()=5 |