公式规范¶
公式以 = 开头,由客户端和服务器上的受限解析器执行。不能执行 Python、任意 SQL、文件或网络操作;服务器写入前重新计算并验证模型值。实际示例见公式指南。
语法与精度¶
运算符:+ - * / ^ &;比较:= <> != < <= > >=;支持括号和一元正负号。参数用逗号分隔,字符串用双引号,内部双引号写两次。字面量:TRUE、FALSE、NULL。
Decimal 使用 28 位有效数字和 ROUND_HALF_EVEN;模型字段按自身小数位数舍入。幂的指数必须为 −100 到 100 的整数。
函数¶
IF, IFERROR, ROUND, ABS, MIN, MAX, SUM, AVG, COUNT, UPPER, LOWER, CONCAT, TODAY, YEAR, MONTH, DAY, ISNULL, IFNULL, COALESCE, QSUM, QAVG, QCOUNT。
IF 与空值合并函数只求值所需分支。IFERROR 不会吞掉复杂度或时间预算错误。
引用¶
[price] 读取原始行值,因此给价格赋 =[price]*1.07 不会形成循环。B7 指第七个已加载行、第二个可见数据列,行号仅对当前页有效。快照外引用失败。$B$7 在复制时固定坐标,不会读取其他页;部分绝对引用也受支持。位置引用读取待保存更改,循环被拒绝。
聚合与空值¶
SUM(B1:B20) 和 SUM(price) 对加载范围聚合。SUM/AVG/COUNT 跳过 NULL、空值与非数值文本;COUNT 统计数值。空 SUM/COUNT 为 0,空 AVG/MIN/MAX 为 #N/A。NULL 算术返回 #N/A;空字符串、0、NULL 各不相同。
日期使用 ISO 格式;TODAY 固定为视图或预览的 UTC 日期,午夜不会改变已确认计划。
批量公式只允许命名引用。QSUM([price])、QAVG([price])、QCOUNT([price]) 基于固定候选数据,不重新运行筛选。所有赋值均使用原始行和已存预览值,与赋值顺序无关。
错误和预算¶
错误:#REF! #CYCLE! #N/A #DIV/0! #VALUE! #NAME? #NUM! #LIMIT!。表达式长度、AST 深度、步数、时间和指数均有限制。跨单元格依赖链额外限制为 100 个活动单元格。
快照与生命周期¶
更换视图前需保存或放弃更改。保存绑定快照 ID 和完整视图状态;过期快照失败。内部剪贴板跟踪源快照,切换视图后拒绝位置公式粘贴;外部公式按当前视图解析。
公式为一次性赋值或虚拟列,不存为持续依赖。虚拟列只读,当前不能用于服务器排序或筛选。