Skip to content

公式与验证规则参考

本参考指南详细列出了平台验证规则、计算字段和默认值公式中所支持的全部运算符、函数规格及使用示例。

支持的字段类型

公式引擎支持在表达式中插入以下类型的字段:

  • 金额、百分数、小数、数字。
  • 日期、日期时间、时间。
  • 单行文本、多行文本、邮箱、网址、地址、手机。
  • 布尔值。
  • 定位组件、签到组件、收款组件。
  • 计算字段、统计字段。
  • 跨对象的查找关联字段的计算字段及统计字段。

完整运算符与函数清单

返回值类型运算符 / 函数参数要求功能说明示例 / 备注
通用()-改变和标注运算符的优先级。(3 + 2) * 5
通用IF(logical_test, value_if_true, value_if_false)3 个参数。
第 1 个为布尔类型,第 2、3 参数类型必须一致。
判断条件是否为 true,如果是则返回第 2 参数值,否则返回第 3 参数值。IF(true, 34, 52) 结果为 34
通用CASE(expression, value1, result1, value2, result2, ..., else_result)不定参数。
所有 result 和 else_result 必须为同一种类型。
将 expression 依次与 value 进行比较,相等则返回对应 result。若均不相等,返回 else_result。CASE(3, 2, 2, 3, 33, 1.3) 结果为 33
通用NULLVALUE(expression, substitute_expression)2 个参数。
返回值类型与第 2 参数一致。
判断表达式结果是否为空,如果是则返回替代值,否则返回原值(或 Null)。NULLVALUE(Null, 1) 结果为 1
NULLVALUE(5, 1) 结果为 Null
数值+, -, *, /2 个参数。
数值、百分比、金额。
执行基础的数学运算。(3 + 2) * 6 / 5 结果为 6
数值- (日期相减)2 个参数。
均为日期类型。
计算两个日期之间的差值,以 为单位。日期 A - 日期 B 结果为天数(数值)
数值- (日期时间相减)2 个参数。
均为日期时间类型。
计算两个时间点之间的差值,以 小时 为单位。时间 A - 时间 B 结果为小时数(数值)
数值- (时间相减)2 个参数。
均为时间类型。
计算时间值之差,以 小时 为单位。17:00:00 - 15:00:00 结果为 2
数值VALUE(string)1 个参数。
文本型。
将文本形式的数字转换成数字(支持负数和小数),失败返回空(Null)。VALUE('-1982.0413') 结果为 -1982.0413
数值MIN(number1, number2)2 个参数。
均为数值类型。
返回两个参数中的较小值。MIN(4, 13) 结果为 4
数值MAX(number1, number2)2 个参数。
均为数值类型。
返回两个参数中的较大值。MAX(4, 13) 结果为 13
数值MULTIPLE(number1, number2)2 个参数。
均为数值类型。
返回两数相乘的结果。MULTIPLE(4, 13) 结果为 52
数值MOD(number1, number2)2 个参数。
均为数值类型。
返回相除之后的余数(模运算)。MOD(13, 4) 结果为 1
数值ADDS(number1, number2)2 个参数。
均为数值类型。
返回两数相加的结果。ADDS(13, 4) 结果为 17
数值SUBTRACTS(number1, number2)2 个参数。
均为数值类型。
返回两数相减的结果。SUBTRACTS(13, 4) 结果为 9
数值YEAR(date)1 个参数。
日期或日期时间。
获取指定时间的年份数值。YEAR(DATEVALUE('1982-04-13')) 结果为 1982
数值MONTH(date)1 个参数。
日期或日期时间。
获取指定时间的月份数值。MONTH(DATEVALUE('1982-04-13')) 结果为 4
数值DAY(date)1 个参数。
日期或日期时间。
获取指定日期的日数值(几号)。DAY(DATEVALUE('1982-04-13')) 结果为 13
数值LEN(text)1 个参数。
文本型。
返回字符串的字符长度。LEN('xiaoke') 结果为 6
时间周期YEARS(number)1 个参数。
数值型。
用于在日期加减中指定年的偏量。TODAY() + YEARS(1) 结果为一年后的今天
时间周期MONTHS(number)1 个参数。
数值型。
用于在日期加减中指定月的偏量。TODAY() + MONTHS(2)
时间周期DAYS(number)1 个参数。
数值型。
用于在日期加减中指定天数偏量。TODAY() - DAYS(7)
时间周期HOURS(number)1 个参数。
数值型。
用于在时间加减中指定小时偏量。NOW() + HOURS(4)
时间周期MINUTES(number)1 个参数。
数值型。
用于在时间加减中指定分钟偏量。NOW() - MINUTES(30)
日期+, -2 个参数。
日期与时间偏移量。
对日期进行加减偏移计算。创建时间 + DAYS(4)
日期DATE(year, month, day)3 个参数。
均为数值。
传入年、月、日数值构建一个日期类型值。DATE(1982, 4, 13) 结果为 1982-04-13
日期DATEVALUE(string)1 个参数。
字符串。
将符合日期格式的字符串解析为日期值。DATEVALUE('1982-04-13')
日期TODAY()0 个参数。返回当前的日期(不含具体时刻)。2026-07-02
日期DATETIMETODATE(datetime)1 个参数。
日期时间。
提取并返回日期时间中的日期部分。DATETIMETODATE(NOW())
日期时间+, -2 个参数。
日期时间与偏移量。
对具体的时间戳进行加减偏移计算。截止时间 - DAYS(1)
日期时间DATETIMEVALUE(string)1 个参数。
字符串。
将字符串解析为具体的日期时间类型值。DATETIMEVALUE('2001-08-24 15:45:25')
日期时间NOW()0 个参数。返回当前的实时日期时间(含时分秒)。2026-07-02 17:38:00
时间DATETIMETOTIME(datetime)1 个参数。
日期时间。
提取并返回日期时间中的时刻部分。DATETIMETOTIME(NOW()) 结果如 17:02:40
文本&2 个参数。
均为文本类型。
将两个字符串进行拼接合并。'张三' & '李四' 结果为 "张三李四"
文本''1 个参数。
单引号包裹。
声明单行文本常量。'单行文本内容'
文本''''''1 个参数。
三单引号包裹。
声明包含换行的多行文本常量。'''多行文本内容'''
文本NUMBERSTRING(number)1 个参数。
数值或金额。
将阿拉伯数字转换为中文大写数字。NUMBERSTRING(198204.13) 结果为 "壹拾玖万捌仟贰佰零肆点壹叁"
文本NUMBERSTRINGRMB(number)1 个参数。
数值或金额。
将阿拉伯数字转换为中文大写人民币金额。NUMBERSTRINGRMB(198204.13) 结果为 "壹拾玖万捌仟贰佰零肆元壹角叁分"
布尔<, >, >=, <=, 2 个参数。
同类可比类型。
进行大小或相等性判定,返回 truefalse1 < 2 结果为 true
布尔AND(boolean1, boolean2, ...)不定参数。
均为布尔值。
逻辑与。所有条件均为 true 时返回 trueAND(2 > 1, 5 > 3) 结果为 true
布尔OR(boolean1, boolean2, ...)不定参数。
均为布尔值。
逻辑或。只要有一个条件为 true 即返回 trueOR(2 > 1, 5 < 3) 结果为 true
布尔NOT(boolean)1 个参数。
布尔值。
逻辑非。反转布尔值。NOT(2 > 1) 结果为 false
布尔ISNULL(expression)1 个参数。
任意类型。
判定字段或表达式计算结果是否为空。ISNULL(手机号) 结果为布尔值
布尔ISNUMBER(string)1 个参数。
字符串。
判定该文本字符串是否可以成功转换为数字。ISNUMBER('5') 结果为 true
布尔STARTWITH(string1, string2)2 个参数。
字符串。
判定 string1 是否以检索字符串 string2 开头。STARTWITH('abcdef', 'ab') 结果为 true
布尔ENDWITH(string1, string2)2 个参数。
字符串。
判定 string1 是否以检索字符串 string2 结尾。ENDWITH('aecdab', 'ab') 结果为 true
布尔EQUALS(string1, string2)2 个参数。
字符串。
比较两个文本是否完全一致(区分大小写)。EQUALS('Abc', 'abc') 结果为 false
布尔CONTAINS(string1, string2)2 个参数。
字符串。
判定 string1 文本中是否包含 string2 关键字。CONTAINS('abcdef', 'cd') 结果为 true

常用验证规则示例

1. 结束日期不能早于开始日期

text
结束日期 < 开始日期

2. 状态为“已完成”时,完成日期不能为空

text
AND(EQUALS(状态, '已完成'), ISNULL(完成日期))

3. 折扣率不能超过 30% 且金额必须大于 0

text
OR(折扣率 > 0.3, 金额 <= 0)

4. 手机号与电话至少填写一项

text
AND(ISNULL(手机), ISNULL(电话))