[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Table calculation
From: |
Brett Presnell |
Subject: |
Re: [O] Table calculation |
Date: |
Sat, 20 Feb 2016 17:48:45 -0500 |
User-agent: |
mu4e 0.9.16; emacs 25.1.50.2 |
Fantastic. Thanks Michael.
Michael Brand <address@hidden> writes:
> 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