emacs-orgmode
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]