Suppose I have this table: | month | expenses | average | |-------+----------+---------| | 1 | 20 | | | 2 | 30 | 25.0 | | 3 | 40 | 30.0 | #+TBLFM: @3$3..@>$3=vmean(@2$2..@0$2);%.1f Then I want to delete the second row and add a new one at the bottom. If I do so I get `#ERROR' on every recalculation. | month | expenses | average | |-------+----------+---------| | 2 | 30 | #ERROR | | 3 | 40 | #ERROR | | 4 | 50 | #ERROR | #+TBLFM: @2$3..@>$3=vmean(@INVALID$2..@0$2);%.1f If I push the second row to the bottom the result is as if the last row is still the second one. | month | expenses | average | |-------+----------+---------| | 2 | 30 | 30.0 | | 3 | 40 | 30.0 | | 1 | 20 | 20.0 | #+TBLFM: @2$3..@>$3=vmean(@4$2..@0$2);%.1f henry -- http://literaturlatenight.de
[-- Attachment #1: Type: text/plain, Size: 1623 bytes --] I'm not sure as to the reason why it does so, but based on your example, the formula is referencing the specific cell itself, rather than the relative position of the cell. If you change your formula to use a relative reference, it will continue to work even when you add, remove and move the rows. #+TBLFM: @2$3..@>$3=vmean(@I$2..@0$2);%.1f or #+TBLFM: @2$3..@>$3=vmean(@<<$2..@0$2);%.1f will both provide you with the result you seem to be looking for. The former uses your (first) horizontal line as the starting point, whereas the latter uses the 2nd row from the top. Regards, Jonathan On Thu, Dec 1, 2011 at 12:42, henry atting <nsmp_02@online.de> wrote: > Suppose I have this table: > > | month | expenses | average | > |-------+----------+---------| > | 1 | 20 | | > | 2 | 30 | 25.0 | > | 3 | 40 | 30.0 | > #+TBLFM: @3$3..@>$3=vmean(@2$2..@0$2);%.1f > > Then I want to delete the second row and add a new one at the bottom. > If I do so I get `#ERROR' on every recalculation. > > | month | expenses | average | > |-------+----------+---------| > | 2 | 30 | #ERROR | > | 3 | 40 | #ERROR | > | 4 | 50 | #ERROR | > #+TBLFM: @2$3..@>$3=vmean(@INVALID$2..@0$2);%.1f > > If I push the second row to the bottom the > result is as if the last row is still the second one. > > | month | expenses | average | > |-------+----------+---------| > | 2 | 30 | 30.0 | > | 3 | 40 | 30.0 | > | 1 | 20 | 20.0 | > #+TBLFM: @2$3..@>$3=vmean(@4$2..@0$2);%.1f > > > henry > > -- > http://literaturlatenight.de > > > [-- Attachment #2: Type: text/html, Size: 2299 bytes --]
Jonathan Leech-Pepin <jonathan.leechpepin@gmail.com> writes: > I'm not sure as to the reason why it does so, but based on your > example, the formula is referencing the specific cell itself, rather > than the relative position of the cell. If you change your formula to > use a relative reference, it will continue to work even when you add, > remove and move the rows. > > #+TBLFM: @2$3..@>$3=vmean(@I$2..@0$2);%.1f > or > #+TBLFM: @2$3..@>$3=vmean(@<<$2..@0$2);%.1f > will both provide you with the result you seem to be looking for. The > former uses your (first) horizontal line as the starting point, > whereas the latter uses the 2nd row from the top. > > Regards, > Jonathan > > On Thu, Dec 1, 2011 at 12:42, henry atting <nsmp_02@online.de> wrote: > > Suppose I have this table: > > | month | expenses | average | > |-------+----------+---------| > | 1 | 20 | | > | 2 | 30 | 25.0 | > | 3 | 40 | 30.0 | > #+TBLFM: @3$3..@>$3=vmean(@2$2..@0$2);%.1f > > Then I want to delete the second row and add a new one at the > bottom. > If I do so I get `#ERROR' on every recalculation. > > | month | expenses | average | > |-------+----------+---------| > | 2 | 30 | #ERROR | > | 3 | 40 | #ERROR | > | 4 | 50 | #ERROR | > #+TBLFM: @2$3..@>$3=vmean(@INVALID$2..@0$2);%.1f > > If I push the second row to the bottom the > result is as if the last row is still the second one. > > | month | expenses | average | > |-------+----------+---------| > | 2 | 30 | 30.0 | > | 3 | 40 | 30.0 | > | 1 | 20 | 20.0 | > #+TBLFM: @2$3..@>$3=vmean(@4$2..@0$2);%.1f > Ah, I see the problem; and thanks, it works fine now. henry -- http://literaturlatenight.de