From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brett Presnell Subject: Re: Table calculation Date: Sat, 20 Feb 2016 17:48:45 -0500 Message-ID: <87lh6fdmlu.fsf@ufl.edu> References: <87mvqvdv95.fsf@ufl.edu> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:40600) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXGKZ-0005Q8-P5 for emacs-orgmode@gnu.org; Sat, 20 Feb 2016 17:48:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aXGKW-0007Bd-Jc for emacs-orgmode@gnu.org; Sat, 20 Feb 2016 17:48:51 -0500 Received: from smtp-prod01.osg.ufl.edu ([128.227.74.217]:41469 helo=smtp.ufl.edu) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXGKW-0007BR-Ax for emacs-orgmode@gnu.org; Sat, 20 Feb 2016 17:48:48 -0500 In-reply-to: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Michael Brand Cc: Org Mode Fantastic. Thanks Michael. Michael Brand writes: > Hi Brett > > On Sat, Feb 20, 2016 at 8:41 PM, Brett Presnell 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(@I..@II), 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 '(@I..@II))); E > > Michael