Hi Nick, * Nick Dokos <ndo...@gmail.com> wrote: > Karl Voit <devn...@karl-voit.at> writes: > >> I'd like to calculate the differences between rows of numbers of a >> different table. >> >> Here is a minimal example showing the issue: >> >> #+NAME: my-table >> | Numbers | >> >> |---------| >> | 1 | >> | 5 | >> | 8 | >> | 12 | >> | 15 | >> >> This is what I expected: "exp. Reference1" and "exp. Reference2" is here only >> to demonstrate that the assumed references are wrong in the third table. >> "exp. >> Difference" is the column I want to get in the first place. I don't want to >> see >> Reference 1 or 2 at all in my solution (since I need a couple of those >> difference-columns). >> >> | Line | exp. Reference1 | exp. Reference2 | exp. Difference | >> |------+-----------------+-----------------+-----------------| >> | 1 | 0 | 0 | 0 | >> | 2 | 5 | 1 | 4 | >> | 3 | 8 | 5 | 3 | >> | 4 | 12 | 8 | 4 | >> | 5 | 15 | 12 | 3 | >> >> This is what I get instead: >> >> | Line | actual Reference1 | actual Reference2 | Difference | >> |------+-------------------+-------------------+------------| >> | 1 | 0 | 0 | 0 | >> | 2 | 6 | 1 | 5 | >> | 3 | 12 | 1 | 11 | >> | 4 | 20 | 1 | 19 | >> | 5 | 30 | 1 | 29 | > > @# is the row number, so to refer to that row, you need @@#. Something like > this, > although I didn't test to see if everything gets parsed correctly: > > #+TBLFM: $2=if(2 == @#, 0, remote(my-table,@@#$1))::$3=if(2 == @#, 0, > remote(my-table,@@#-1$1))::$4=if(2 == @#, 0, > (remote(my-table,@@#$1)-remote(my-table,@@#-1$1)))
This is a huge step forward: #+NAME: my-table | Numbers | |---------| | 1 | | 5 | | 8 | | 12 | | 15 | | Line | exp. Reference1 | exp. Reference2 | exp. Difference | |------+-----------------+-----------------+-----------------| | 1 | 0 | 0 | 0 | | 2 | 5 | 1 | 4 | | 3 | 8 | 5 | 3 | | 4 | 12 | 8 | 4 | | 5 | 15 | 12 | 3 | | Line | actual Reference1 | actual Reference2 | Difference | |------+-------------------+-------------------+------------| | 1 | 0 | 0 | 0 | | 2 | 5 | 5 | 0 | | 3 | 8 | 8 | 0 | | 4 | 12 | 12 | 0 | | 5 | 15 | 15 | 0 | #+TBLFM: $2=if(2 == @#, 0, remote(my-table,@@#$1))::$3=if(2 == @#, 0, remote(my-table,@@#-1$1))::$4=if(2 == @#, 0, (remote(my-table,@@#$1)-remote(my-table,@@#-1$1))) Somehow, the "-1" in "@@#-1$1" does not have any effect: "@@#$1" and "@@#-1$" gives the same results. Do you have any idea why? > Turning on formula debugging with `C-c {' helps. Woha! I didn't know that! And I also didn't know =C-c }= for displaying column/row numbers :-O *This* is going to be handy for me ;-) -- get mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML into Org-mode: > get Memacs from https://github.com/novoid/Memacs < Personal Information Management > http://Karl-Voit.at/tags/pim/ Emacs-related > http://Karl-Voit.at/tags/emacs/