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

公式示例
示例 | 说明 |
---|---|
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 |
ADDYEAR | 增加指定日期的年份 | ADDYEAR("2024-03-15 12:08:31", 2) = 2026-03-15 12:08:31 ADDYEAR("2024-03-15 12:08:31", 3, "YYYY-MM-DD") = 2027-03-15 |
ADDMONTH | 增加指定日期的月份 | ADDMONTH("2024-03-15 12:08:31", 2) = 2024-05-15 12:08:31 ADDMONTH("2024-03-15 12:08:31", 10, "YYYY-MM-DD") = 2025-01-15 |
ADDDAY | 增加指定日期的天数 | ADDDAY("2024-03-15 12:08:31", 10) = 2024-03-25 12:08:31 ADDDAY("2024-03-15 12:08:31", 20, "YYYY-MM-DD") = 2024-04-04 |
ADDHOUR | 增加指定时间的小时数 | ADDHOUR("2024-03-15 12:08:31", 10) = 2024-03-15 22:08:31 ADDHOUR("2024-03-15 12:08:31", 20, "HH:mm:ss") = 08:08:31 |
ADDMINUTE | 增加指定时间的分钟数 | ADDMINUTE("2024-03-15 12:08:31", 30) = 2024-03-15 12:38:31 ADDMINUTE("2024-03-15 12:08:31", 55, "HH:mm:ss") = 13:03:31 |
ADDSECOND | 增加指定时间的秒数 | ADDSECOND("2024-03-15 12:08:31", 20) = 2024-03-15 12:08:51 ADDSECOND("2024-03-15 12:08:31", 40, "HH:mm:ss") = 12:09:11 |
ADDWEEK | 增加指定日期的周数 | ADDWEEK("2024-03-15 12:08:31", 2) = 2024-03-29 12:08:31 ADDWEEK("2024-03-15 12:08:31", 4, "YYYY-MM-DD") = 2024-04-12 |
SUBYEAR | 减少指定日期的年份 | SUBYEAR("2024-03-15 12:08:31", 2) = 2022-03-15 12:08:31 SUBYEAR("2024-03-15 12:08:31", 3, "YYYY-MM-DD") = 2021-03-15 |
SUBMONTH | 减少指定日期的月份 | SUBMONTH("2024-03-15 12:08:31", 2) = 2024-01-15 12:08:31 SUBMONTH("2024-03-15 12:08:31", 10, "YYYY-MM-DD") = 2023-05-15 |
SUBDAY | 减少指定日期的天数 | SUBDAY("2024-03-15 12:08:31", 10) = 2024-03-05 12:08:31 SUBDAY("2024-03-15 12:08:31", 20, "YYYY-MM-DD") = 2024-02-24 |
SUBHOUR | 减少指定时间的小时数 | SUBHOUR("2024-03-15 12:08:31", 10) = 2024-03-15 02:08:31 SUBHOUR("2024-03-15 12:08:31", 20, "HH:mm:ss") = 16:08:31 |
SUBMINUTE | 减少指定时间的分钟数 | SUBMINUTE("2024-03-15 12:08:31", 30) = 2024-03-15 11:38:31 SUBMINUTE("2024-03-15 12:08:31", 55, "HH:mm:ss") = 11:13:31 |
SUBSECOND | 减少指定时间的秒数 | SUBSECOND("2024-03-15 12:08:31", 20) = 2024-03-15 12:08:11 SUBSECOND("2024-03-15 12:08:31", 40, "HH:mm:ss") = 12:07:51 |
SUBWEEK | 减少指定日期的周数 | SUBWEEK("2024-03-15 12:08:31", 2) = 2024-03-01 12:08:31 SUBWEEK("2024-03-15 12:08:31", 4, "YYYY-MM-DD") = 2024-02-16 |
合集函数
函数名称 | 说明 | 示例 |
---|---|---|
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,否则返回false | AND(true, true) = true AND(true, false) = false |
OR | 将表达式用"或"链接,当有一个表达式为true时返回true,否则返回false | OR(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 | 返回逻辑值 true | TRUE() = true |
FALSE | 返回逻辑值 false | FALSE() = 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 |