3.5.6 Column formulas

当为简单列引用(如 ‘$3=’ )指定公式时,该列所有字段都会使用同一公式,但有以下便捷例外:(i) 如果表格包含水平分隔线,且分隔线上下均有数据行,第一条分隔线以上的内容会被视为表格表 ,列公式不会修改表头内容。因此,使用列公式并希望用分隔线分组行时(例如将底部总计行与上方求和行分开),必须设置表头。(ii) 已通过字段/范围公式赋值的字段,列公式不会覆盖。这些规则让列公式使用起来非常简便。

要为某列指定公式,可直接在该列任意字段输入,以等号开头,例如 ‘=$1+$2’ 。当光标仍在该字段内时按下 TABRETC-c C-c,公式会保存为当前列的公式并执行,当前字段被结果替换。如果字段仅包含 ‘=’ ,则使用该列之前保存的公式。Org 对每一列只记录最近使用的公式。在 ‘TBLFM’ 关键字中,列公式形如 ‘$4=$1+$2’ 。列公式左侧不能使用列名,必须为数字列引用或 ‘$>’ 。

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

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

为当前列设置新公式,并将当前字段替换为公式结果。命令会提示输入公式,默认值取自 ‘TBLFM’ 关键字,应用到当前字段并保存。若带数字前缀参数,例如 C-5 C-c =,则会将公式应用到当前列连续指定数量的字段。