Dans une table Emacs Org-mode, lorsque vous avez une colonne pleine d'entiers, je sais que vous pouvez faire C-c +
suivi de 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 documents vous montrent comment additionner deux colonnes mais pas une.
Réponses:
Attribuez un nom de champ à l'aide de la
^
marque:|---+---| | | 1 | | | 2 | | | 3 | |---+---| | | 6 | | ^ | x | |---+---| #+TBLFM: $x=vsum(@1..@-1)
Voir le manuel de l'organisation , Section-3.5.9 Fonctions avancées .
la source
#+TBLFM: @row$col=vsum(@1..@-1)
Unknown field: x
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)
Peut-être devrez-vous adapter le
@2
, si vous n'avez pas de ligne d'en-tête ...la source
Encore une autre possibilité marques utilisent des lignes horizontales (
@I
,@II
, etc.) qui sont de toute façon utile de 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 suggéré par d'autres.Edit: Je viens de voir que vous avez déjà écrit cela vous-même dans un commentaire à votre question.
la source
Vous pouvez essayer ceci:
$<col_num>=<func>(@2..@-1))
@2
est statique. Il fait référence à la 2ème rangée à partir de.@-1
fait référence à l'avant-dernière ligne.Je pense que c'était le moyen le plus simple et non intrusif. Il préserve les noms de vos colonnes et n'encombre pas l'espace visuel. Il ne vous oblige pas à vous adresser à la dernière ligne. Il est adressé par défaut.
Les lignes peuvent être ajoutées / supprimées. Aucun autre marqueur.
par exemple.
#+TBLFM: $3=vmean(@2..@-1)::$4=vsum(@2..@-1))
Exemple de tableau
| 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)
la source
| 3 | | 2 | | 5 | | 10 | #+TBLFM: @4$1=vsum(@1..@-1)
@1
fait référence à la 1ère ligne et@-1
à la ligne précédant celle contenant la formule. Cette formule ignore les lignes:| 3 | | 2 | | 5 | |----| | 10 | #+TBLFM: @4$1=vsum(@1..@-1)
la source
Quelque chose qui peut ne pas être évident pour un lecteur est que la fonction n'est
vsum()
pas sum ()L'autre chose, c'est que la
@2..@-1
chose, est une référence à l'étiquette spécifique à la ligne pour la colonne en cours d'addition. La$A$1
chose dans Excel est comme@1$1
si une référence àvsum(@2..@-1)
est de dire "faites une somme des valeurs de la colonne, en utilisant comme index de ligne la@
valeur de la plage 2, à la -1e (c'est-à-dire l'avant-dernière) ligne, mais la colonne est un "donné" dans celui-ci afin que son vsum soit appliqué[@2$col @3$col @4$col... @-1$col]
si vous essayez de mapper ces concepts dans Excella source