Skip to content

公式函数

本文为你列举了设计器中目前支持的所有计算公式。

公式函数

公式示例

示例说明
DEFAULT(date, NOW());当date为空时使用当前时间填充
ROUND(MUL(price, quantity), 2)价格×数量后四舍五入保留2位小数
CASE(EQ(level, "VIP"), 0.8, EQ(level, "SVIP"), 0.7, 1.0)VIP打8折,SVIP打7折,其他不打折
CONCAT(lastName, firstName)将姓和名拼接成完整姓名
IF(GT(score, 90), "优秀", "良好")90分以上为优秀,其他为良好
SLICELEFT(email, INDEXOF(email, "@"))获取@符号前的邮箱用户名部分
DIFFDAYS(TODAY(), deadline)计算今天到截止日期的天数差
SUM(COLUMN(group, 'price'))对子表单中price列的值求和
CONCAT(SLICELEFT(phone, 3), "****", SLICERIGHT(phone, 4))隐藏手机号中间4位

数字函数

函数名称说明示例
TONUMBER将参数转换为数字TONUMBER("1.5") = 1.5
TONUMBER("2.4e") = 2.4
TONUMBER("ABC") = 0
ADD获取两个数字相加的值ADD(1, 2) = 3
SUB获取两个数字相减的值SUB(10, 1) = 9
MUL获取两个数字相乘的值MUL(2, 2) = 4
DIV获取两个数字相除的值DIV(10, 2) = 5
SUM获取合集中数值的总和SUM(1,2,3) = 6
SUM([5, 6, 7]) = 18
MAX获取参数列表中的最大值MAX(1, 5, 10) = 10
MIN获取参数列表中的最小值MIN(1, 5, 10) = 1
ABS获取数字的绝对值ABS(-10) = 10
ABS(10) = 10
AVG获取参数列表的平均值AVG(2, 4, 6, 8) = 5
MOD获取两个数字的余数MOD(10, 3) = 1
SQRT获取一个数字的正平方根SQRT(9) = 3
POWER获取指定数字的乘幂POWER(2, 4) = 16
RAND获取一个大于等于0且小于1的随机数RAND() = 0.75348173001531
PI获取圆周率PI() = 3.141592653589793
ROUND将一个小数四舍五入到指定的位数ROUND(3.149, 2) = 3.15
ROUND(3.149) = 3
FLOOR获取指定数字向下取整的值FLOOR(1.93) = 1
CEIL获取指定数字向上取整的值CEIL(1.93) = 2
FIXED将一个小数保留指定位数的小数FIXED(1.93, 1) = 1.9
TOCHINSESAMOUNT获取指定数字的中文大写金额TOCHINSESAMOUNT(32.14) = "叁拾贰元壹角肆分"

文本函数

函数名称说明示例
STARTSWITH检查字符串是否以指定字符串开头STARTSWITH("ABCDEF","ABC") = true
STARTSWITH("ABCDEF","AD") = false
SLICELEFT获取一个字符串从开头开始指定长度的字符串SLICELEFT("ABCDE", 3) = "ABC"
SLICERIGHT获取一个字符串从结尾开始指定长度的字符串SLICERIGHT("ABCDE", 3) = "CDE"
TOLOWER将字符串中所有大写字母转换为小写字母TOUPPER("ABCD") = "abcd"
TOUPPER将字符串中所有小写字母转换为大写字母TOUPPER("abcd") = "ABCD"
INCLUDES检查字符串中是否包含指定字符串INCLUDES("ABCD", "BC") = 1
INCLUDES("ABCD", "E") = -1
CONCAT将所有参数拼接,返回拼接后的字符串CONCAT("ABC", "DEF") = "ABCDEF"
REPLACE将字符串中的部分文本替换为不同的文本,只替换匹配到的第一个REPLACE("AbAc","A","1") = "1bAc"
REPLACEALL将字符串中的部分文本替换为不同的文本,替换所有匹配到的REPLACEALL("AbAc","A","1") = "1b1c"
TRIM将字符串前后的空格删除TRIM("\t\n A BC \t\n") = "A BC"

时间函数

函数名称说明示例
NOW获取当前的时间NOW() = "2024-03-15 12:08:31"
TODAY获取今天的日期TODAY() = "2024-03-15"
YEAR获取指定日期的年份YEAR("2024-03-15 12:08:31") = 2024
MONTH获取指定日期的月份MONTH("2024-03-15 12:08:31") = 3
DAY获取指定日期的天数DAY("2024-03-15 12:08:31") = 15
HOUR获取指定日期的小时数HOUR("2024-03-15 12:08:31") = 12
MINUTE获取指定日期的分钟数MINUTE("2024-03-15 12:08:31") = 8
SECOND获取指定日期的秒数SECOND("2024-03-15 12:08:31") = 31
DIFFDAYS获取两个日期之间的天数DIFFDAYS("2024-01-15","2024-03-15") = 60
DIFFHOURS获取两个时间之间的小时数,保留两位小数DIFFHOURS("2024-01-15 12:00:00", "2024-01-16 15:00:00") = 27
DIFFHOURS("2024-01-15 12:00:00", "2024-01-15 12:30:00") = 0.5
DIFFMINUTES获取两个时间之间的分钟数DIFFMINUTES("2024-01-15 12:00:00", "2024-01-15 12:30:00") = 30
TIMESTAMP获取指定日期的时间戳TIMESTAMP("2024-03-15 12:08:31") = 1710475711000

合集函数

函数名称说明示例
IN检查第二个参数是否在合集中IN([1,2,3,4], 4) = true
IN([1,2,3,4], 5) = false
LEN获取指定合集的长度LEN(["a", "b", "c"]) = 3
UNION将合集/参数中的值去重,返回去重后的合集UNION(1, 3, 5, 1, 4, 3) = [1, 3, 5, 4]
UNION([1, 2, 3, 1, 2, 3]) = [1, 2, 3]
COLUMN获取子表单中指定字段并返回合集COLUMN([{key: 1}, {key: 2}, {key: 3}],"key") = [1, 2, 3]
COLUMN([[{key: 1}, {key: 2}], [{key: 3}, {key: 4}]], "key") = [1, 2, 3, 4]
VALUE获取分组表单中指定字段VALUE({key: 1}, "key", 2) = 1
VALUE({key: 1}, "value", 2) = 2
VALUE({list: {key: 1}}, "list.key") = 1
INTERSECTIONSET获取两个集合的交集INTERSECTIONSET([1, 3, 5], [1, 4, 3]) = [1, 3]
LIST获取所有参数组成的集合LIST([1, 3, 5], [1, 4, 3]) = [[1, 3, 5], [1, 4, 3]]

逻辑函数

函数名称说明示例
IF检查一个条件能否满足,如果满足返回第二个参数,否则返回第三个参数IF(false, 1, 0) = 0
IF(true, 1, 0) = 1
AND将表达式用"并且"链接,当所有表达式均为true时返回true,否则返回falseAND(true, true) = true
AND(true, false) = false
OR将表达式用"或"链接,当有一个表达式为true时返回true,否则返回falseOR(false, false) = false
OR(false, true) = true
CASE检查是否满足一个或多个条件,返回第一个满足条件的值CASE(IN([1,2,3,4], 5), 1, IN([1,2,3,4], 2), 2) = 2
NOT获取某个逻辑值的相反值NOT(true) = false
NOT(false) = true
EQ检查两个值是否相等EQ(100, 100) = true
EQ(100, 90) = false
EQ(100, "100") = false
NE检查两个值是否不相等NE(100, 90) = true
NE(100, 100) = false
NE(100, "100") = true
GE检查第一个值是否大于等于另一个值GE(100, 90) = true
GE(100, 100) = true
GE(100, 110) = false
GT检查第一个值是否大于另一个值GT(100, 90) = true
GT(100, 100) = false
GT(100, 110) = false
LE检查第一个值是否小于等于另一个值LE(100, 90) = false
LE(100, 100) = true
LE(100, 110) = true
LT检查第一个值是否小于另一个值LT(100, 90) = false
LT(100, 100) = false
LT(100, 110) = true
TRUE返回逻辑值 trueTRUE() = true
FALSE返回逻辑值 falseFALSE() = false
DEFAULT检查第一个参数,如果为空返回第二个参数,否则返回第一个参数DEFAULT("#FF7271", "#000") = "#FF7271"
DEFAULT("", "#000") = ""
DEFAULT(null, "#000") = "#000"
EMPTY检查参数是为空EMPTY("") = true
EMPTY([]) = true
EMPTY("0") = false
NOTEMPTY检查参数是否不为空NOTEMPTY("") = false
NOTEMPTY([]) = false
NOTEMPTY("0") = true
ISNUMBER检查参数是否为数字ISNUMBER("2.34") = true
ISNUMBER("2.4e") = false