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

时间:2011-07-14 03:13:28

标签: emacs org-mode org-table

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

我已经尝试了一切。 docs向您展示如何将两列相加而不是一列。

6 个答案:

答案 0 :(得分:49)

表格的最后一行是@> 例如,要获取最后一行中第三列的总和,可以使用公式

@>$3=vsum(@2..@-1)

如果你没有标题行,也许你必须调整@2 ...

答案 1 :(得分:48)

使用^标记指定字段名称:

|---+---|
|   | 1 |
|   | 2 |
|   | 3 |
|---+---|
|   | 6 |
| ^ | x |
|---+---|
#+TBLFM: $x=vsum(@1..@-1)

请参阅The Org Manual, Section-3.5.9 Advanced Features

答案 2 :(得分:27)

另一种可能性是使用水平线(@I@II等),这对于构建表格非常有用:

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

如果没有标题,请按照其他人的建议,将总和从@0开始。

编辑: 我刚刚看到你自己在对你的问题的评论中写了这个。

答案 3 :(得分:3)

你可以试试这个:

$<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)

答案 4 :(得分:0)

|  3 |
|  2 |
|  5 |
| 10 |
#+TBLFM: @4$1=vsum(@1..@-1)

@1指向第一行,@-1指向保存公式的第一行。该公式忽略了hlines:

|  3 |
|  2 |
|  5 |
|----|
| 10 |
#+TBLFM: @4$1=vsum(@1..@-1)

答案 5 :(得分:0)

对于函数来说,vsum()不是sum()可能对读者来说并不明显

另一件事是@2..@-1事物是对要求和的列的行特定标签的引用。 Excel中的$A$1就像@1$1,因此对vsum(@2..@-1)的引用是“将列中的值相加,将@的值用作行索引在范围2到第-1(即倒数第二)行,但是此列是“给定的”,因此,如果您尝试将这些概念映射到Excel,则其vsum会应用到[@2$col @3$col @4$col... @-1$col]