Skip to content

计算公式专题:「数值函数」

数值函数 作为算术运算符的补充,以更简单的方式,实现复杂的运算。

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, ...)计算所有数值的 最大值数值 / 数值数组 / 返回数值的其他函数

使用举例

  • 四个厂家参与竞标,以下为计算厂家中最高报价和最低报价为多少

函数特性

MINMAX 会将参数中的 空值(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)

提示

拆分数值的写法多种多样,此处举例采用不同的方式