如何在 org-mode 表格中将公式向下复制到一列?

6

使用C-c =输入公式后,我希望该公式应用于该列中的每一行。 我该如何做到这一点?

4个回答

7
我的个人偏好是直接在单元格中添加公式,而不是要记住那么多键盘快捷键。
只需要从单元格开始输入,以=符号开头。例如,在第3列中输入=$1+$2,该公式将直接应用于整个列。
你需要按C-c C-c才能实际应用公式并计算结果。
对于单个单元格(非列)的公式,请以:=开头。

3
如果我用等号做那个,它只会计算一个单元格,而不是整个列… - Coliban
根据@Coliban的评论,我还必须在#+TBLRM行上执行C-c C-c,否则只有一行受到影响。 - Joe
1
@Coliban 你可以使用 C-u C-c * 强制它计算所有字段。 - Alejandro Braun

4
您需要使用 C-3 C-c =,其中3是您希望应用公式的行数。
| 3 | 4 |   |
| 2 | 8 |   |

如果我在4后面的列中输入C-2 C-c =,我可以输入我的公式$1+$2,这将向下级联到每一行,给我结果:

| 4 | 3 |  7 |
| 2 | 8 | 10 |
#+TBLFM: $3=$1+$2

您也可以自由地将#+TBLFM: $3=$1+$2添加到表格底部。当光标位于公式上方时,您可以使用C-c C-c强制公式重新计算其值。


2

C-u C-c C-c 重新应用所有公式.

例如,给定以下内容:

| 3 |  4 | _ |
| 2 |  8 |   |
| 1 | 12 |   |

(其中_标记光标位置)您可以键入C-c = 1 ,然后输入一个公式,例如
$3=$1+$2

所以表格看起来像这样:
| 3 |  4 | 7 |
| 2 |  8 |   |
| 1 | 12 |   |
#+TBLFM: $3=$1+$2

现在键入C-u C-c C-c会产生以下结果。
| 3 |  4 |  7 |
| 2 |  8 | 10 |
| 1 | 12 | 13 |

1或者,您可以使用C-c '来打开公式编辑缓冲区,编写和/或编辑公式,然后关闭缓冲区(使用C-x C-s)。我发现这更方便,因为您可以在缓冲区中使用所有Emacs命令,而不仅仅是在迷你缓冲区中使用的有限命令集。


0
将光标置于单个公式结果的单元格上,然后按C-u C-c *

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接