在Emacs Org-mode表格中,如果你有一列整数,可以使用
我已经尝试了所有方法。文档向您展示如何将两列相加,但没有单独对一列进行求和。
C-c +
然后C-y
来粘贴该列值的总和。我想知道在最后一行中放置的公式以始终对整个列求和。我已经尝试了所有方法。文档向您展示如何将两列相加,但没有单独对一列进行求和。
一个表格的最后一行是@>
例如,要获取最后一行第三列的总和,可以使用以下公式
@>$3=vsum(@2..@-1)
如果你没有标题行,也许需要调整@2
...
使用^
符号分配一个字段名称:
|---+---|
| | 1 |
| | 2 |
| | 3 |
|---+---|
| | 6 |
| ^ | x |
|---+---|
#+TBLFM: $x=vsum(@1..@-1)
#+TBLFM: @row$col=vsum(@1..@-1)
这段代码。 - mgalgs另一种可能性是利用水平线(@I
, @II
等),这些线在任何情况下都对表格结构非常有用:
| What | $$ |
|-------+-------|
| Ice | 3.00 |
| Soda | 6.49 |
| Gin | 4.99 |
|-------+-------|
| Total | 14.48 |
#+TBLFM: @>$2=vsum(@I..@II)
按照其他人的建议,不需要标题,直接让总和从@0
开始。
编辑:我刚刚看到你已经在问题的评论中自己写过这个了。
| 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)
读者可能看不出来的是,函数是vsum()
而不是sum()
另一件事是,@2..@-1
是对正在汇总的列的行特定标签的引用。在Excel中,$A$1
类似于@1$1
,因此对vsum(@2..@-1)
的引用表示“对该列的值求和,使用范围为第二行到倒数第二行(即倒数第二个)的@
值作为行索引,但此时列已经确定,所以它是应用于[@2$col @3$col @4$col... @-1$col]
的vsum,如果您尝试将这些概念映射到Excel中,就会明白了。
| 3 |
| 2 |
| 5 |
| 10 |
#+TBLFM: @4$1=vsum(@1..@-1)
@1
指第一行,@-1
指公式所在行的前一行。该公式忽略水平线:
| 3 |
| 2 |
| 5 |
|----|
| 10 |
#+TBLFM: @4$1=vsum(@1..@-1)
#+TBLFM:
行时,请使用C-c C-c
来执行答案中给出的公式。 - legends2k