Skip to content

公式字段(Formula)

公式字段通过表达式自动计算并显示结果,支持引用当前记录的其他字段、使用内置函数和嵌套计算。适用于需要自动计算的场景,如总价、完成率、到期提醒等。

适用场景

  • 计算订单总价:数量 × 单价
  • 计算任务完成率:已完成数 ÷ 总数
  • 拼接显示文本:姓氏 + 名字
  • 判断日期状态:IF(截止日期 < 今天(), "已逾期", "未逾期")

创建公式字段

  1. 在数据表中点击「添加字段」。
  2. 选择字段类型为「公式」。
  3. 在公式编辑器中输入表达式。
  4. 配置结果格式(如数字精度、日期格式等)。
  5. 点击保存。

公式编辑器

SmartTable 提供公式助手组件,降低公式编写门槛:

  • 字段选择:点击可插入当前记录的字段引用。
  • 函数列表:按分类展示所有可用函数,点击即可插入。
  • 语法提示:输入函数时显示参数说明。
  • 实时预览:保存前可预览计算结果。

引用字段

在公式中引用字段时,使用字段名称或字段标识,例如:

{数量} * {单价}

也可以直接输入字段名:

数量 * 单价

系统会在保存时自动解析并关联对应字段。

内置函数

SmartTable 公式引擎提供 47 个内置函数,覆盖以下类别:

数学函数

函数说明示例
SUM求和SUM(1, 2, 3)
AVERAGE平均值AVERAGE({语文}, {数学})
MAX最大值MAX({数值1}, {数值2})
MIN最小值MIN({数值1}, {数值2})
ROUND四舍五入ROUND({数值}, 2)
ABS绝对值ABS({数值})

文本函数

函数说明示例
CONCAT拼接文本CONCAT({姓}, {名})
LEFT从左截取LEFT({文本}, 3)
RIGHT从右截取RIGHT({文本}, 3)
LEN文本长度LEN({文本})
TRIM去除两端空格TRIM({文本})

日期函数

函数说明示例
TODAY当前日期TODAY()
NOW当前日期时间NOW()
DATEADD日期加减DATEADD({日期}, 3, "days")
DATEDIFF日期差DATEDIFF({结束}, {开始}, "days")
YEAR / MONTH / DAY提取年月日YEAR({日期})

逻辑函数

函数说明示例
IF条件判断IF({状态}="完成", 100, 0)
AND全部成立AND({条件1}, {条件2})
OR任一成立OR({条件1}, {条件2})
NOT取反NOT({条件})
ISBLANK是否为空ISBLANK({字段})

结果格式化

公式字段支持多种结果格式:

  • 数字:配置小数位数、千分位分隔符。
  • 货币:选择货币符号(¥、$ 等)。
  • 百分比:自动乘以 100 并显示 %。
  • 日期/日期时间:选择日期显示格式。

格式选择

公式保存后仍可修改格式。如果公式返回的是日期时间戳,请选择日期格式,避免显示为长数字。

常见示例

计算总价

{数量} * {单价}

计算完成率

IF({总数} > 0, {已完成} / {总数} * 100, 0)

逾期判断

IF({截止日期} < TODAY(), "已逾期", "未逾期")

状态标签

IF({进度} = 100, "已完成", IF({进度} > 0, "进行中", "未开始"))

注意事项

  • 公式字段为只读,不能手动编辑计算结果。
  • 公式中引用的字段值变更后,公式结果会自动重算。
  • 如果公式语法有误,字段会显示「计算错误」,请检查函数名和参数。
  • 公式字段可以引用其他公式字段,但请避免循环引用。

Released under the MIT License.