W tabeli trybu organizacji Emacsa, gdy masz kolumnę pełną liczb całkowitych, wiem, że możesz to zrobić, C-c +
a następnie C-y
wkleić sumę wartości w kolumnie. Chcę wiedzieć, jaką formułę należy umieścić w ostatnim wierszu, aby zawsze sumować całą kolumnę.
Próbowałem wszystkiego. W docs pokazać, jak podsumować dwie kolumny razem, ale nie jeden.
Odpowiedzi:
Przypisz nazwę pola za pomocą
^
znaku:|---+---| | | 1 | | | 2 | | | 3 | |---+---| | | 6 | | ^ | x | |---+---| #+TBLFM: $x=vsum(@1..@-1)
Patrz Podręcznik organizacji , Rozdział 3.5.9 Funkcje zaawansowane .
źródło
#+TBLFM: @row$col=vsum(@1..@-1)
Unknown field: x
Ostatni wiersz tabeli to
@>
Na przykład, aby uzyskać sumę z trzeciej kolumny w ostatnim wierszu, możesz użyć formuły@>$3=vsum(@2..@-1)
Może musisz dostosować
@2
, jeśli nie masz linii nagłówka ...źródło
Jeszcze inny marki Możliwość korzystania z linii poziomych (
@I
,@II
etc.), które są użyteczne anyways uporządkować tabelę:| What | $$ | |-------+-------| | Ice | 3.00 | | Soda | 6.49 | | Gin | 4.99 | |-------+-------| | Total | 14.48 | #+TBLFM: @>$2=vsum(@I..@II)
Bez nagłówka niech zaczyna się suma,
@0
jak już sugerowali inni.Edycja: Właśnie zobaczyłem, że napisałeś to już sam w komentarzu do swojego pytania.
źródło
Możesz spróbować tego:
$<col_num>=<func>(@2..@-1))
@2
jest statyczny. Odnosi się do drugiego rzędu i dalej.@-1
odnosi się do przedostatniego rzędu.Myślę, że był to najłatwiejszy i nieinwazyjny sposób. Zachowuje nazwy kolumn i nie zaśmieca przestrzeni wizualnej. Nie wymaga adresowania ostatniego wiersza. Jest adresowany domyślnie.
Wiersze można dodawać / usuwać. Żadnych innych znaczników.
na przykład.
#+TBLFM: $3=vmean(@2..@-1)::$4=vsum(@2..@-1))
Przykładowy stół
| 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)
źródło
| 3 | | 2 | | 5 | | 10 | #+TBLFM: @4$1=vsum(@1..@-1)
@1
odnosi się do pierwszego wiersza i@-1
do wiersza poprzedzającego wiersz zawierający formułę. Ta formuła ignoruje linie:| 3 | | 2 | | 5 | |----| | 10 | #+TBLFM: @4$1=vsum(@1..@-1)
źródło
Coś, co może nie być widoczne dla czytelnika, to funkcja
vsum()
nie jest sumą ()Inną rzeczą jest to, że
@2..@-1
rzecz jest odwołaniem do etykiety konkretnego wiersza dla sumowanej kolumny.$A$1
Rzeczą w programie Excel jest jak@1$1
więc odniesienie dovsum(@2..@-1)
mówi „zrobić sumę wartości z kolumny, stosując jako wskaźnik rzędu@
wartość w zakresie od 2 do -1th (tj przedostatni wiersz), ale kolumna jest „dane” w tym przypadku, więc jego porównanie jest stosowane w[@2$col @3$col @4$col... @-1$col]
przypadku próby zmapowania tych pojęć do programu Excelźródło