[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Table calculation
From: |
Michael Brand |
Subject: |
Re: [O] Table calculation |
Date: |
Sat, 20 Feb 2016 22:13:47 +0100 |
Hi Brett
On Sat, Feb 20, 2016 at 8:41 PM, Brett Presnell <address@hidden> wrote:
> In the following table, the last row gives the number of empty cells
> following the last nonempty cell in each column (except the first column
> of course). I would like to create a TBLFM formula that does this
> calculation for me automatically. Some time ago I tried using
> org-lookup-last and org-lookup-all for this, but I never got it to work.
> Any ideas/solutions?
>
> | Date | AA | BB | CC | DD | EE | FF | GG | HH | II | JJ | KK | LL | MM |
> |--------+----+----+----+----+----+----+----+----+----+----+----+----+----|
> | / | <> | <> | <> | <> | <> | <> | <> | <> | <> | <> | <> | <> | <> |
> | 201005 | | | | | 1 | | | 1 | | | | 1 | |
> | 201008 | | | | 1 | | | | | | | | | |
> | 201012 | | | | | | | | | | | | | |
> | 201105 | | | | | | 1 | | | | | | | |
> | 201108 | | | | | | | 1 | | | | | | |
> | 201112 | | | | | | | | | | 1 | | | |
> | 201205 | | | | | | | | | | | | | |
> | 201208 | | | | | | | | | | | | | |
> | 201212 | | | | | | | | | 1 | | | | |
> | 201305 | | | 1 | | | | | 2 | | | 1 | | |
> | 201308 | 1 | | | | | | | | | | | | |
> | 201312 | | | | | | | | | | | | | 1 |
> | 201405 | | | | | | | | 1 | | | | 1 | |
> | 201408 | | 1 | | | | | | | | | | | |
> | 201412 | | | | | 1 | | | | | | | | |
> | 201505 | | | | 1 | | | | | | | | | |
> | 201508 | | | | | | | | | 1 | | | | |
> | 201512 | | | | | | | 1 | | | | | | |
> | 201605 | | | | | | | | | | | | | |
> |--------+----+----+----+----+----+----+----+----+----+----+----+----+----|
> | | 8 | 5 | 9 | 3 | 4 | 15 | 1 | 6 | 2 | 13 | 9 | 6 | 7 |
Two of the possible solutions:
| Date | AA | BB | CC | DD | EE | FF | GG | HH | II | JJ | KK | LL | MM |
| / | <> | <> | <> | <> | <> | <> | <> | <> | <> | <> | <> | <> | <> |
|--------+----+----+----+----+----+----+----+----+----+----+----+----+----|
| 201005 | | | | | 1 | | | 1 | | | | 1 | |
| 201008 | | | | 1 | | | | | | | | | |
| 201012 | | | | | | | | | | | | | |
| 201105 | | | | | | 1 | | | | | | | |
| 201108 | | | | | | | 1 | | | | | | |
| 201112 | | | | | | | | | | 1 | | | |
| 201205 | | | | | | | | | | | | | |
| 201208 | | | | | | | | | | | | | |
| 201212 | | | | | | | | | 1 | | | | |
| 201305 | | | 1 | | | | | 2 | | | 1 | | |
| 201308 | 1 | | | | | | | | | | | | |
| 201312 | | | | | | | | | | | | | 1 |
| 201405 | | | | | | | | 1 | | | | 1 | |
| 201408 | | 1 | | | | | | | | | | | |
| 201412 | | | | | 1 | | | | | | | | |
| 201505 | | | | 1 | | | | | | | | | |
| 201508 | | | | | | | | | 1 | | | | |
| 201512 | | | | | | | 1 | | | | | | |
| 201605 | | | | | | | | | | | | | |
|--------+----+----+----+----+----+----+----+----+----+----+----+----+----|
| | 8 | 5 | 9 | 3 | 4 | 15 | 1 | 6 | 2 | 13 | 9 | 6 | 7 |
#+TBLFM: @>$<<..@>$> = find(rev(@address@hidden), 1) - 1; E
Note that I moved the header separator line.
When the last non-empty cell is not limited to be always 1 it gets a
bit more complicated:
#+TBLFM: @>$<<..@>$> = '(position-if-not (lambda (x) (equal x ""))
(reverse '(@address@hidden))); E
Michael