跳转至

公式示例

公式以 = 开头。客户端预览结果,服务器在写入前重新计算并验证。

一次性赋值

模型字段保存计算结果,不会建立持续依赖。展示用计算列请使用 sheet_computed_fields。

常用公式

目标 公式
涨价 7% =ROUND([price]*1.07,2)
九折优惠 =ROUND([price]*0.9,2)
库存金额 =[price]*[stock]
根据库存设状态 =IF([stock]>0,"ready","order")
替换 NULL =IFNULL([note],"无备注")
名称转大写 =UPPER([name])
提取年份 =YEAR([available_on])
当前加载价格之和 =SUM(price)
处理除法错误 =IFERROR([price]/[stock],0)

字段必须存在且用户可见,状态值需符合字段的 choices。

原始行值

[price] 读取原始价格,因此将 =[price]*1.07 赋给价格不会形成循环。1200.00 变为 1284.00。批量操作中的所有赋值也基于原始数据,与赋值顺序无关。

单元格引用

引用 含义
B7 第七个已加载行、第二个可见数据列
$B$7 复制时固定行和列
B$7 / $B7 固定行 / 固定列
B1:B20 当前快照内的区域

位置引用会读取待保存的更改。越界返回 #REF!,循环返回 #CYCLE!。即使在后续页,B7 仍表示该页第七行。

计算列

sheet_computed_fields = {
    "inventory_value": "=[price]*[stock]",
    "availability": '=IF([stock]>0,"有货","待订货")',
}

计算列只读,当前版本不支持服务器端筛选和排序。

聚合与精度

SUM、AVG、COUNT 仅覆盖加载范围,不会读取所有数据库记录。COUNT 统计数值;NULL、空值和非数值文本会被跳过。

批量公式只支持命名引用。QSUM、QAVG、QCOUNT 对固定的预览集合聚合,例如 =[price]/QSUM([price])。

Decimal 使用 28 位有效数字和 ROUND_HALF_EVEN;模型字段按 decimal_places 舍入。ROUND(8.5,0) 为 8,ROUND(9.5,0) 为 10。

错误 含义
#REF! 引用不可用或超出快照
#CYCLE! 循环依赖
#DIV/0! 除以零
#VALUE! 类型不兼容
#NAME? 未知函数或名称
#N/A 缺少计算输入
#NUM! 无效数值结果
#LIMIT! 超过计算预算

完整规则参见公式规范。