永久汇总组织模式表中的列

Mau*_*ord 80 emacs org-mode org-table

在Emacs组织模式表中,当您有一个满整数的列时,我知道您可以执行C-c +以下操作C-y来粘贴列中的值的总和.我想知道放在最后一行的公式总是对整列进行求和.

我已经尝试了一切.该文档显示你如何总结在一起,但不是一两个栏.

hua*_*uan 51

使用^标记分配字段名称:

|---+---|
|   | 1 |
|   | 2 |
|   | 3 |
|---+---|
|   | 6 |
| ^ | x |
|---+---|
#+TBLFM: $x=vsum(@1..@-1)
Run Code Online (Sandbox Code Playgroud)

请参阅组织手册,第3.5.9节"高级功能".

  • 我得到'Unknown field:x` (7认同)
  • 你也可以做`#+ TBLFM:@ row $ col = vsum(@ 1 .. @ - 1)` (2认同)

小智 50

表的最后一行是@> 例如,为了得到最后一行中第三列的总和,可以使用公式

@>$3=vsum(@2..@-1)
Run Code Online (Sandbox Code Playgroud)

也许你必须适应@2,如果你没有标题线......


qua*_*gar 30

另一种可能性是利用水平线(@I,@II等等),这是构建你的表反正有用:

| What  |    $$ |
|-------+-------|
| Ice   |  3.00 |
| Soda  |  6.49 |
| Gin   |  4.99 |
|-------+-------|
| Total | 14.48 |
#+TBLFM: @>$2=vsum(@I..@II)
Run Code Online (Sandbox Code Playgroud)

如果没有标题,就必须@0按照其他人的建议开始计算总和.

编辑: 我刚刚看到你自己写了这个问题的评论.

  • 我花了一分钟才明白 @I 和 @II 指的是水平规则,但我认为如果您以这种方式组织表格,这是最简单的方法。 (2认同)

小智 11

你可以试试这个:

$<col_num>=<func>(@2..@-1))

@2是静态的。它指的是第 2 行以后。 @-1指倒数第二行。

我认为这是最简单和非侵入性的方式。它保留了您的列名,并且不会弄乱视觉空间。它不需要您解决最后一行。它被默认寻址。

可以添加/删除行。没有其他标记。

例如。
#+TBLFM: $3=vmean(@2..@-1)::$4=vsum(@2..@-1))

样品表

   | Time                   | Input             | Test      | InQty |
   | <2018-03-13 Tue 06:15> | Water             |           |   200 |
   | <2018-03-13 Tue 07:03> |                   |           |       |
   |                        |                   |           |       |
   | <2018-03-13 Tue 07:31> | Water             |           |   180 |
   | <2018-03-13 Tue 09:00> | Chai              |           |   240 |
   | <2018-03-13 Tue 11:30> | Chai              |           |   240 |
   | <2018-03-13 Tue 16:01> | Water             |           |    60 |
   |                        |                   |           |       |
   |------------------------+-------------------+-----------+-------|
   |                        |                   |           |   920 |
   #+TBLFM: $4=vsum(@2..@-1)
Run Code Online (Sandbox Code Playgroud)