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


87

在Emacs Org模式表中,当我有一列充满整数的列时,我知道可以执行以下操作,C-c +然后C-y将值的总和粘贴到该列中。我想知道公式地方最后一排的概括整个列。

我已经尝试了一切。该文档向您展示了如何将两列加起来而不是一列。


4
我能得到的最好的办法是在表格的顶部和底部添加一条高线,并创建一个列公式:= vsum(@I .. @ II)
Mauvis Ledford 2011年

作为FYI,我刚刚在此处发布了一个有关以Hline为目标的类似问题:stackoverflow.com/questions/6689424/… 该问题已经获得投票,答案可能有所不同,因此在此同时我将其保留。
莫维斯·莱德福德

Answers:


60

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

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

参见组织手册,第3.5.9节“高级功能”


谢谢!最终效果很好,我对此表示满意,但是,现在我有了相同的“ header” hline和“ footer” hline。有没有办法只使用标题行。在文档中其“-”标记,但是然后我不知道如何使用vsum(@ 2 .. @ [最后一项])。
Mauvis Ledford

4
你也可以做#+TBLFM: @row$col=vsum(@1..@-1)
mgalgs

7
我明白了Unknown field: x
白炽灯

我也有未知领域。阅读手册,基本上在上述例子中它调用上面行的^ XX,从而使6是从1的VSUM,2,3计算
Japhir

56

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

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

@2如果没有标题行,则可能必须改编...。


39

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

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

如果没有标题,则必须让总和@0按其他人的建议开始。

编辑: 我只是看到您已经在对问题的评论中自己写了这个。


我花了一分钟的时间来理解@I和@II是指水平规则,但是如果您以此方式组织表,我认为这是最简单的方法。
threeve

9

您可以尝试以下方法:

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

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

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

@1指的是第一行,以及@-1指向包含该公式的那一行之前的行。该公式忽略了hlines:

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

0

对于函数而言,某些函数可能vsum()不是sum()

另一件事是,该@2..@-1事物是对要求和的列的行特定标签的引用。在$A$1Excel中的是象@1$1这样的参考vsum(@2..@-1)是说“从柱做值的总和,使用如行索引的@取值范围为2值,对-1th(即第二最后的)行,但该列一个“给定的”,因此[@2$col @3$col @4$col... @-1$col]如果您尝试将这些概念映射到Excel中,它的vsum将被应用

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.