emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Christian Moe <mail@christianmoe.com>
To: emacs-orgmode@gnu.org
Subject: Re: how obtain automatic row numbers in a table starting after the second hline?
Date: Sun, 07 Aug 2022 13:21:13 +0200	[thread overview]
Message-ID: <87y1w08fkm.fsf@christianmoe.com> (raw)
In-Reply-To: <87bksxz6nu.fsf@mat.ucm.es>

Hi, Uwe,

Three ideas:

1. Since your solution depends on the row number (@#) in any case, your
   use case does not actually depend on hline-relative references, does
   it?  Then you can also assign to absolute row numbers, either by

   - assigning to the range rather than to the colum, which is not
     possible with hline relative references (the obvious
     @II$1..@>$1=@#-1+572 is not allowed), but with an absolute start
     reference it works:

     |  Nr |
     |-----|
     |     |
     |-----|
     | 574 |
     | 575 |
     | 576 |
     | 577 |
     #+TBLFM: @3$1..@>$1=@#-1+572

   - or assigning to the row first, then assigning the content between
     the hlines to that cell (perhaps a fragile solution).

     |  Nr |
     |-----|
     |     |
     |-----|
     | 574 |
     | 575 |
     | 576 |
     | 577 |
     #+TBLFM: $1=@#-1+572::@2$1=string("")

2. Use a conditional to avoid changing the cell between the hlines, e.g.:

   |  Nr |
   |-----|
   | foo |
   |-----|
   | 574 |
   | 575 |
   | 576 |
   | 577 |
   #+TBLFM: $1=if(@# < 3, @0$1, @#+571)

   Here, I use @0$1 to replace that cell with itself. If the cell is empty,
   this evaluates as 0, so if you want an empty string, use string("")
   instead of @0$1.

3. Add a first column with special marking characters (see Org manual:
   Spreadsheet: Advanced features), leaving empty the cell between the
   hlines so it won't get recalculated.

   |   |  Nr |
   |---+-----|
   |   |     |
   |---+-----|
   | * | 574 |
   | * | 575 |
   | * | 576 |
   | * | 577 |
   #+TBLFM: $2=@#-1+572

Yours,
Christian

Uwe Brauer writes:

> Hi
>
> I would like to obtain
> #+begin_src
>
> |  Nr |
> |-----|
> |     |
> |-----|
> | 574 |
> | 575 |
> |  .. |
> | 680 |
> #+end_src
>
> I tried
> #+begin_src
>
> | Nr |
> |----|
> |  1 |
> |----|
> |  1 |
> |  2 |
> #+TBLFM: $1=vlen(@II$1..0);EN
> #+end_src
>
> or
> #+begin_src
>
> |  Nr |
> |-----|
> | 573 |
> |-----|
> | 574 |
> | 575 |
> #+TBLFM: $1=@#-1+572
> #+end_src
>
> None worked, any ideas?
>
> thanks
>
> Uwe Brauer


  reply	other threads:[~2022-08-07 11:21 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-06 16:19 how obtain automatic row numbers in a table starting after the second hline? Uwe Brauer
2022-08-07 11:21 ` Christian Moe [this message]
2022-08-09  7:32   ` Uwe Brauer
2022-08-10 20:28     ` Christian Moe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y1w08fkm.fsf@christianmoe.com \
    --to=mail@christianmoe.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).