Em uma tabela Emacs Org-mode, quando você tem uma coluna cheia de inteiros, eu sei que você pode fazer C-c +
seguido por C-y
colar a soma dos valores na coluna. Quero saber a fórmula a ser colocada na última linha para sempre somar a coluna inteira.
Já tentei de tudo. Os documentos mostram como somar duas colunas, mas não uma.
Respostas:
Atribua um nome de campo usando a
^
marca:|---+---| | | 1 | | | 2 | | | 3 | |---+---| | | 6 | | ^ | x | |---+---| #+TBLFM: $x=vsum(@1..@-1)
Consulte o Manual da Org , Seção 3.5.9 Recursos avançados .
fonte
#+TBLFM: @row$col=vsum(@1..@-1)
Unknown field: x
A última linha de uma tabela é
@>
Por exemplo, para obter a soma da terceira coluna na última linha, você pode usar a fórmula@>$3=vsum(@2..@-1)
Talvez você tenha que adaptar o
@2
, se você não tiver uma linha de cabeçalho ...fonte
Ainda outra possibilidade faz uso de linhas horizontais (
@I
,@II
, etc.) que são úteis de qualquer maneira para estruturar sua tabela:| What | $$ | |-------+-------| | Ice | 3.00 | | Soda | 6.49 | | Gin | 4.99 | |-------+-------| | Total | 14.48 | #+TBLFM: @>$2=vsum(@I..@II)
Sem um cabeçalho, deve deixar a soma começar
@0
conforme já sugerido por outros.Edit: Acabei de ver que você mesmo já escreveu isso em um comentário à sua pergunta.
fonte
Você pode tentar isto:
$<col_num>=<func>(@2..@-1))
@2
é estático. Refere-se à 2ª linha em diante.@-1
refere-se à penúltima linha.Acho que essa foi a maneira mais fácil e não intrusiva. Ele preserva os nomes das colunas e não confunde o espaço visual. Não requer que você aborde a última linha. Ele é endereçado por padrão.
Linhas podem ser adicionadas / removidas. Nenhum outro marcador.
por exemplo.
#+TBLFM: $3=vmean(@2..@-1)::$4=vsum(@2..@-1))
Mesa de amostra
| 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)
fonte
| 3 | | 2 | | 5 | | 10 | #+TBLFM: @4$1=vsum(@1..@-1)
@1
refere-se à 1ª linha e@-1
à linha anterior àquela que contém a fórmula. Essa fórmula ignora hlines:| 3 | | 2 | | 5 | |----| | 10 | #+TBLFM: @4$1=vsum(@1..@-1)
fonte
Algo que pode não ser aparente para o leitor é que a função
vsum()
não é soma ()A outra coisa, é que a
@2..@-1
coisa, é uma referência ao rótulo específico da linha para a coluna que está sendo somada. A$A$1
coisa no Excel é como@1$1
uma referência avsum(@2..@-1)
dizer "faça uma soma dos valores da coluna, usando como o índice da linha o@
valor no intervalo 2, a -1 (ou seja, penúltimo) linha, mas a coluna é um "dado" neste, então seu valor será aplicado[@2$col @3$col @4$col... @-1$col]
se você tentar mapear esses conceitos no Excelfonte