web-dev-qa-db-fra.com

Additionner en permanence une colonne dans une table en mode Org

Dans une table en mode Emacs Org, lorsque vous avez une colonne pleine d'entiers, je sais que vous pouvez faire C-c + suivi par C-y pour coller la somme des valeurs dans la colonne. Je veux connaître la formule à placer dans la dernière ligne pour toujours additionner toute la colonne.

J'ai tout essayé. Les docs vous montrent comment additionner deux colonnes mais pas une.

79
Mauvis Ledford

Attribuez un nom de champ à l'aide de ^ marque:

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

Voir Le manuel de l'organisation , Section-3.5.9 Fonctions avancées .

49
huaiyuan

La dernière ligne d'un tableau est @> Par exemple, pour obtenir la somme de la troisième colonne de la dernière ligne, vous pouvez utiliser la formule

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

Vous devrez peut-être adapter le @2, si vous n'avez pas de ligne d'en-tête ...

50
Andre

Une autre possibilité encore utilise des lignes horizontales (@I, @II, etc.) qui sont de toute façon utiles pour structurer votre table:

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

Sans en-tête, laissez la somme commencer à @0 comme déjà suggéré par d'autres.

Edit: Je viens de voir que vous l'avez déjà écrit vous-même dans un commentaire à votre question.

29
quazgar

Vous pouvez essayer ceci:

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

@2 Est statique. Il se réfère à la 2ème rangée. @-1 Fait référence à l'avant-dernière ligne.

Je pense que c'était la manière la plus simple et non intrusive. Il préserve les noms de vos colonnes et n'encombre pas l'espace visuel. Il ne vous oblige pas à adresser la dernière ligne. Il est adressé par défaut.

Des lignes peuvent être ajoutées/supprimées. Pas d'autres marqueurs.

par exemple.
#+TBLFM: $3=vmean(@2..@-1)::$4=vsum(@2..@-1))

Exemple de table

   | 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