В таблице Emacs Org-mode, когда у вас есть столбец, полный целых чисел, я знаю, что вы можете сделать, C-c +
а затем C-y
вставить сумму значений в столбец. Я хочу знать формулу, которую нужно разместить в последней строке, чтобы всегда суммировать весь столбец.
Все перепробовала. В документации показано, как суммировать два столбца, но не один.
Ответы:
Назначьте имя поля с помощью
^
знака:|---+---| | | 1 | | | 2 | | | 3 | |---+---| | | 6 | | ^ | x | |---+---| #+TBLFM: $x=vsum(@1..@-1)
См . Руководство организации , раздел 3.5.9 «Дополнительные функции» .
источник
#+TBLFM: @row$col=vsum(@1..@-1)
Unknown field: x
Последняя строка таблицы:
@>
Например, чтобы получить сумму для третьего столбца в последней строке, вы можете использовать формулу@>$3=vsum(@2..@-1)
Возможно, вам придется адаптировать
@2
, если у вас нет строки заголовка ...источник
Еще одна возможность - использовать горизонтальные линии (
@I
,@II
и т.д.), которые в любом случае полезны для структурирования вашей таблицы:| What | $$ | |-------+-------| | Ice | 3.00 | | Soda | 6.49 | | Gin | 4.99 | |-------+-------| | Total | 14.48 | #+TBLFM: @>$2=vsum(@I..@II)
Без заголовка пусть сумма начинается с того,
@0
что уже было предложено другими.Изменить: я только что видел, что вы сами уже написали это в комментарии к своему вопросу.
источник
Вы можете попробовать это:
$<col_num>=<func>(@2..@-1))
@2
статичен. Это относится ко 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)
источник
| 3 | | 2 | | 5 | | 10 | #+TBLFM: @4$1=vsum(@1..@-1)
@1
относится к 1-й строке и@-1
к строке, предшествующей строке, содержащей формулу. Эта формула игнорирует hlines:| 3 | | 2 | | 5 | |----| | 10 | #+TBLFM: @4$1=vsum(@1..@-1)
источник
Что-то, что может быть не очевидно для читателя, - это то, что функция
vsum()
не sum ()Другое дело, что
@2..@-1
это ссылка на метку строки для суммируемого столбца.$A$1
Вещь в Excel, как@1$1
так ссылкаvsum(@2..@-1)
говорит «сделать сумму значений из колонки, используя в качестве индекса строки в@
значение в диапазоне 2, к -1th (т.е. второй последней) строки, а столбец "задано" в этом, поэтому его vsum применяется,[@2$col @3$col @4$col... @-1$col]
если вы пытаетесь сопоставить эти концепции с Excelисточник