web-dev-qa-db-ja.com

組織モード表の列を永続的に合計する

Emacs Org-modeテーブルでは、整数でいっぱいの列がある場合、C-c + に続く C-y列の値の合計を貼り付けます。 always列全体を合計する最後の行に配置する数式を知りたいです。

私はすべてを試しました。 docs は、1つではなく2つの列を合計する方法を示します。

79
Mauvis Ledford

^マークを使用してフィールド名を割り当てます。

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

組織マニュアル、セクション-3.5.9高度な機能 を参照してください。

49
huaiyuan

テーブルの最後の行は@>たとえば、最後の行の3番目の列の合計を取得するには、次の式を使用できます。

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

たぶん、あなたは@2、ヘッダー行がない場合...

50
Andre

さらに別の可能性は、テーブルを構造化するのに役立つ水平線(@I@IIなど)を使用することです。

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

ヘッダーがなければ、すでに他の人が示唆しているように、合計が@0で始まるようにする必要があります。

編集:質問へのコメントですでに自分でこれを書いているのを見ました。

29
quazgar

これを試すことができます:

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

_@2_は静的です。 2行目以降を指します。 _@-1_は、最後から2番目の行を指します。

これが最も簡単で邪魔にならない方法だったと思います。列名を保持し、視覚的なスペースを乱雑にしません。最後の行をアドレス指定する必要はありません。デフォルトで対処されます。

行を追加/削除できます。他のマーカーはありません。

例えば。
#+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)
_
3
Johnson