Skip to content

计算公式专题:「基础运算符」

基础运算符是在公式计算中最常用到,也是最基础的的运算符号。它们可以以最直观的方式,来展现本条公式是如何计算并获取最终结果的。

1.基础运算符

基础运算符分为如下两类:

  • 算术运算符
  • 逻辑运算符

2.算术运算符

2.1 运算符罗列

运算符说明简单举例
+加法3 + 3 的结果为 6
-减法3 - 4 的结果为 -1
*乘法3 * 4 的结果为 12
/除法1 / 4 的结果为 0.25
%取余数5 % 4 的结果为 1
()括号,可以改变计算顺序2 * (3 + 2) 的结果为 10

注意事项1:有效数值与无效数值

关于 无效 数值:当参与数值运算的字段不为 数字 时,例如 abc + 1 是无法得出结果的,类似于 abc 这样的 字符 / 符号 ,我们将其称之为 无效数值

注意事项2:空值(null)与未定义的值(undefined)

空值null )与 未定义的值undefined )是数值运算中需要 首先排除 的对象,尽管系统会针对它们做一部分的隐式修复和替换,但在 业务 设计中,也请尽量 手动 校验或替换掉这些 非法值
可以使用函数 IF_EMPTY() 直接返回数值是否有效,也可参考另一种直接判断并执行计算的用法: 案例补充-数值非法校验

注意事项3:全半角括号

公式中的括号均为英文半角下的括号 (),而非中文全角下的括号 ()
仔细看两者会有细微差别,但 中文全角括号 会导致公式本身 失效

2.2 运算符使用举例

公式计算入口

公式自动计算可以在 选中控件 之后, 页面右侧 -> 其他配置 -> 勾选公式自动计算 ,便会弹框以供输入公式。

详细可以参阅 应用表单 - 表单设计 - 2.9 公式自动计算

注意

以下举例,均建立在数值 合法且有效假设 下执行的。
关于如何 手动校验避免非法数值 ,请查看章节 4. 案例补充

+ 加法运算符 公式示例

  • 演示举例


- 减法运算符 公式示例

  • 演示举例


* 乘法运算符 公式示例

  • 演示举例


除法和取余

除法与取余运算符在数学运算上具备 相似的逻辑 ,下方将两个运算符的演示 合并 在一起。

/ 除法运算符 公式示例

% 取余运算符 公式示例

  • 演示举例

图中出现的 Infinity

当且仅当 除数为 0 的时候,计算结果会出现 Infinity
这一点属于数学逻辑的范畴:0 不能作为任何数的除数。
值得一提的是,部分 非法填充 ,在系统中是会被认定为 数值0 的,这一点尤为注意。
关于如何避免 Infinity 的出现,请查看案例补充的 数值非法校验



() 括号运算符 使用示例

提示

算术运算符的计算顺序符合数学逻辑下的规则:先乘除,后加减
另外,% 取余运算符的 运算优先级 等同 / 除法运算符。
括号运算符本身 不直接参与 数值运算,而是辅助其他算术运算符,用于 调整 公式内部的 运算顺序

以上面减法例子 被减数 - 减数 和 加法例子 加数1 + 加数2 举例说明。
此处希望获取减法例子的 减去 加法例子 ,可以罗列如下公式:

被减数 - 减数 - ( 加数1 + 加数2 )

3.关系运算符

3.1 运算符罗列

运算符说明简单举例
>大于"a" > "b" 的结果为 假(false)
>=大于等于3 >= 3 的结果为 真(true)
<小于3 < 4 的结果为 真(true)
<=小于等于"bcd" <= "bc" 的结果为 假(false)
==等于10 == 10 的结果为 真(true)

字符串比较

关于字符串的大小于比较,是在比对它们字符的字典序号。

3.2 运算符使用举例

使用方式

关系运算符在公式的设置方式,与算术运算符 完全一致
以前方加法运算的公式举例,想判断 加数1 是否大于 加数2 时,则将原本的+替换为 > 即可。
例如 加数1 > 加数2

非数值类型的数字

强烈建议 调用 数值函数 NUMBER() 将字符串转为数值后再做比较。

4.案例补充

更多案例

这里会存放一些相对简单的案例,复杂或常用案例可以移步至 常用公式举例 查阅。

4.1 数值非法校验

非法校验是在判断数值是否是 处理空值(null)与未定义的值(undefined)
无论何种情况,除数 在现实业务中不可能为0,例如订单中只存在 总价 ,但是购入商品总 数量为0
除法案例 做举例,针对此种情况,应校验后 拒绝 此计算逻辑。修改后的公式示例:

提示

以上公式调用了 逻辑函数IF ,其本身格式为 IF(条件, 表达式1, 表达式2),执行逻辑为 若条件为真,执行表达式1,为假则执行表达式2
然后,关于所有 变量/参数 的判定,在 IF 语句中,只要不为 空值(null)或未定义的数值(undefined)IF 都会认定 条件为真
即,此处公式的 实际含义 是: 当除数合法时,执行除法计算,否则直接返回 0

下面是包含 补充公式(正确商值)原公式(错误商值) 的演示示例:

4.2 无效数值校验

关于无效数值,其实是在特指 非数值数据 参与了 数值计算
这里给出公式的计算模板,它可以有效判断该字符串是否为可用的 数值 ,模板示例如下:

提示

NUMBER() 是尝试将字符串转为数值的函数,当值 可以被转换 为数值时,返回数值;当 无法转换 时,返回 未定义(undefined)
然后利用 IF() 来确认 NUMBER() 的转换结果,并判定是返回 转换后的值,还是返回预设的 默认值
这里为方便演示就默认返回 0 ,实际业务中可根据需要 灵活设置

演示示例:

4.3 另一种求和方式

关于 求和 ,有一个关于该计算的 数值函数SUM(表达式1, 表达式2, ...) ,若希望执行加法计算,可优先选择此项。

SUM(表达式1, 表达式2, ...)

该函数可以在执行 求和运算 时,自动 忽视 所有的 非法/无效数值

演示举例: