Dalam tabel Emacs Org-mode, ketika Anda memiliki kolom yang penuh dengan bilangan bulat, saya tahu Anda dapat melakukannya C-c +
diikuti dengan C-y
menempelkan jumlah nilai di kolom. Saya ingin mengetahui rumus yang harus ditempatkan di baris terakhir untuk selalu menjumlahkan seluruh kolom.
Saya sudah mencoba segalanya. The docs menunjukkan cara untuk meringkas dua kolom bersama-sama tetapi tidak satu.
Jawaban:
Tetapkan nama bidang menggunakan
^
tanda:|---+---| | | 1 | | | 2 | | | 3 | |---+---| | | 6 | | ^ | x | |---+---| #+TBLFM: $x=vsum(@1..@-1)
Lihat Panduan Organisasi , Bagian-3.5.9 Fitur Lanjutan .
sumber
#+TBLFM: @row$col=vsum(@1..@-1)
Unknown field: x
Baris terakhir tabel adalah
@>
Misalnya untuk mendapatkan jumlah kolom ketiga di baris terakhir, Anda bisa menggunakan rumus@>$3=vsum(@2..@-1)
Mungkin Anda harus menyesuaikan
@2
, jika Anda tidak memiliki baris header ...sumber
Namun merek kemungkinan lain menggunakan garis horizontal (
@I
,@II
, dll) yang berguna lagian untuk struktur meja Anda:| What | $$ | |-------+-------| | Ice | 3.00 | | Soda | 6.49 | | Gin | 4.99 | |-------+-------| | Total | 14.48 | #+TBLFM: @>$2=vsum(@I..@II)
Tanpa header, biarkan jumlah mulai
@0
seperti yang sudah disarankan oleh orang lain.Sunting: Saya baru saja melihat Anda menulis ini sendiri di komentar atas pertanyaan Anda.
sumber
Anda dapat mencoba ini:
$<col_num>=<func>(@2..@-1))
@2
bersifat statis. Ini mengacu pada baris ke-2 dan seterusnya.@-1
mengacu pada baris kedua hingga terakhir.Saya pikir ini adalah cara termudah dan tidak mengganggu. Ini mempertahankan nama kolom Anda dan tidak mengacaukan ruang visual. Anda tidak perlu membahas baris terakhir. Ini ditangani secara default.
Baris dapat ditambahkan / dihapus. Tidak ada penanda lain.
misalnya.
#+TBLFM: $3=vmean(@2..@-1)::$4=vsum(@2..@-1))
Tabel sampel
| 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)
sumber
| 3 | | 2 | | 5 | | 10 | #+TBLFM: @4$1=vsum(@1..@-1)
@1
mengacu pada baris ke-1, dan@-1
ke baris sebelumnya yang memegang rumus. Rumus itu mengabaikan garis:| 3 | | 2 | | 5 | |----| | 10 | #+TBLFM: @4$1=vsum(@1..@-1)
sumber
Sesuatu yang mungkin tidak terlihat oleh pembaca adalah fungsinya
vsum()
bukan sum ()Hal lainnya, adalah
@2..@-1
hal itu, adalah referensi ke label khusus baris untuk kolom yang dijumlahkan. The$A$1
hal dalam Excel adalah seperti@1$1
jadi referensi untukvsum(@2..@-1)
mengatakan "melakukan penjumlahan nilai dari kolom, menggunakan sebagai indeks baris@
nilai di kisaran 2, untuk -1th (yaitu detik terakhir) berturut-turut, tetapi kolom adalah a "diberikan" dalam hal ini sehingga vsum diterapkan[@2$col @3$col @4$col... @-1$col]
jika Anda mencoba memetakan konsep ini ke Excelsumber