Appearance
计算公式专题:「数值函数」
数值函数
作为算术运算符的补充,以更简单的方式,实现复杂的运算。
1. AVERAGE | SUM | COUNT
- 这三个函数具有一定联系,此处一起举例
函数格式 | 函数功能 | 参数 |
---|---|---|
AVERAGE(参数1, 参数2, ...) | 计算所有数值的平均值 | 数值 / 数值数组 / 返回数值的其他函数 |
SUM(参数1, 参数2, ...) | 统计所有数值之和 | 数值 / 数值数组 / 返回数值的其他函数 |
COUNT(参数1, 参数2, ...) | 统计非空参数个数 | 文本 / 数值 / 数组 / 其他函数 |
使用举例 :
- 计算员工完成的产品总数、人均完成数、在岗人数
- 图中
三号员工
无数据,意为不在岗
- 图中

函数特性&关联
这三个函数会自动过滤 空值(null)
,不将其纳入运算,仅对其他员工求平均。
从功能上看:AVERAGE
约等于 SUM / COUNT
若三号员工完成数为0
则三号员工会纳入运算,意为三号员工在岗,但一份产品都没有完成
即 每人平均完成
为 1.5
,同时 在岗人数
为 4
2. MIN | MAX
- 均为从一组数值中获取一个极值
函数格式 | 函数功能 | 参数 |
---|---|---|
MIN(参数1, 参数2, ...) | 计算所有数值的 最小值 | 数值 / 数值数组 / 返回数值的其他函数 |
MAX(参数1, 参数2, ...) | 计算所有数值的 最大值 | 数值 / 数值数组 / 返回数值的其他函数 |
使用举例 :
- 四个厂家参与竞标,以下为计算厂家中最高报价和最低报价为多少

函数特性
MIN
和 MAX
会将参数中的 空值(null)
替换为 0,再做处理。
即上图示例中,若有厂家 未填写
数据,则最低报价始终为 0
。
3. INT | ROUND
- 均为处理数值的小数部分的函数
函数格式 | 函数功能 | 参数 |
---|---|---|
INT(参数) | 舍弃所有小数位 | 数值 / 数值数组 / 返回数值的其他函数 |
ROUND(参数1, 小数位数) | 四舍五入到指定位数 | 数值 / 数值数组 / 返回数值的其他函数 |
使用举例 :
- 根据本金和利率计算利息

4. RANDOM
函数格式 : RANDOM(最小值, 最大值, 保留小数位)
功能说明 :获取位于指定区间的数值,每一次计算得到的值都 不一样
参数 :
最小值/最大值
:必填项,数值 / 返回数值的其他函数保留小数位
:选填项,数值 / 返回数值的其他函数
保留小数位
若不填,则 不保留小数位
使用举例 :
- 顾客抽取随机的折扣金额,抵扣最低五毛起,最高抵扣28元
- 顾客每次抽取的抵扣金额都是不一样的
js
RANDOM(0.5, 28, 2)
5. TO_MONEY
函数格式 :TO_MONEY(数值)
功能说明 :将数值转为大写金额
参数 :数值 / 返回数值的其他函数
使用举例 :
- 为结账金额生成一个大写金额

6. 案例补充
更多案例
这里会存放一些相对简单的案例,复杂或常用案例可以移步至 常用公式举例 查阅。
6.1 购物清单
- 场景描述
- 根据所选商品计算对应的小计
- 统计总金额
- 抽取随机抵扣金额并计算实际结算金额
- 将实际结算金额换算为大写金额

- 控件对应公式
- 小计:
MAX(0, 商品单价) * MAX(0, 商品数量)
- 原总金额:
SUM(购物清单列表.小计)
- 随机抵扣:
RANDOM(0.5, 10, 2)
- 实际结算金额:
MAX(0, 原总金额 - 随机抵扣)
- 总金额大写:
TO_MONEY(实际结算金额)
- 小计:
6.2 评委打分
- 场景描述
- 存在多个评委提交分数
- 打分为追求公平需要去掉最高分、最低分各一个
- 最终得分为剩余评委打分的平均数

最终得分
控件公式
js
(SUM(评委.分数) - MAX(评委.分数) - MIN(评委.分数)) / (COUNT(评委.分数) - 2)
6.3 发票金额拆分
- 场景描述
- 将金额数值按照百万/十万/万/千/百/十/元/角/分的格式执行拆分,并填写在子表单中

- 子表控件公式
- 百万:
MAX(0, INT(金额 / 1000000))
- 十万:
MAX(0, INT(金额 / 100000) - 10 * 百万)
- 万:
MAX(0, INT(金额 / 10000) - 100 * 百万 - 10 * 十万)
- 千:
MAX(0, INT(金额 / 1000) - INT(金额 / 10000) * 10)
- 百:
MAX(0, INT(金额 / 100) - INT(金额 / 1000) * 10)
- 十:
MAX(0, INT(金额 / 10) - INT(金额 / 100) * 10)
- 元:
MAX(0, INT(金额) - INT(金额 / 10) * 10)
- 角:
SLICE(SLICE(STRING(金额), SEARCH(STRING(金额), ".")), 2, 2)
- 分:
SLICE(SLICE(STRING(金额), SEARCH(STRING(金额), ".")), 3, 3)
- 百万:
提示
拆分数值的写法多种多样,此处举例采用不同的方式