3.5.5 Field and range formulas

要为某个特定字段指定公式,可以直接在字段中输入,以 ‘:=’ 开头,例如 ‘vsum(@II..III)’ 。当光标仍在该字段内时按下 TABRETC-c C-c,公式会被保存为该字段的公式并执行,当前字段会被结果替换。

公式会保存在表格正下方专用的 ‘TBLFM’ 关键字中。如果在表格第三行数据的第四个字段输入公式,形式为 ‘@3$4=$1+$2’ 。使用相应命令插入、删除或交换行列时,已保存公式中的 绝对引用(absolute reference) (而非相对引用)会自动调整,以保持指向原单元格。为避免这种情况,尤其是在范围引用中,可将范围锚定在表格边界(使用 ‘@<’ 、 ‘@>’ 、 ‘$<’ 、 ‘$>’ )或使用 ‘@I’ 标记锚定在水平分隔线上。如果使用普通编辑命令修改表格结构,字段引用不会自动适配,需要手动修正公式。

除了直接在字段中输入等式,也可以使用以下命令:

C-u C-c = (org-table-eval-formula)

为当前字段设置新公式。该命令会提示输入公式,默认值取自 ‘TBLFM’ 关键字,应用到当前字段并保存。

公式左侧也可以使用特殊表达式,将公式应用到多个不同字段。这类范围公式没有快捷键,可通过公式编辑器(见 Editing and debugging formulas)或直接编辑 ‘TBLFM’ 关键字添加。

$2=

列公式,对整列生效。这类用法非常常见,Org 会对其做特殊处理,详见 Column formulas

@3=

行公式,应用到指定行的所有字段。 ‘@>=’ 表示最后一行。

@1$2..@4$3=

范围公式,应用到指定矩形区域内的所有字段。也可用于为某一行中的部分字段指定公式。

$NAME=

命名字段,详见 Advanced features