From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Moe Subject: Re: Table rows and ranges as LHS of formulas Date: Thu, 03 Mar 2011 00:09:34 +0100 Message-ID: <4D6ECE2E.5040504@christianmoe.com> References: <5A22097F-A1F9-480E-B2E5-030CD6493B2F@gmail.com> <4D6E6C4C.4090709@christianmoe.com> Reply-To: mail@christianmoe.com Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from [140.186.70.92] (port=43431 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Puv7g-0002E6-Fy for emacs-orgmode@gnu.org; Wed, 02 Mar 2011 18:06:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Puv7f-0003cJ-Ed for emacs-orgmode@gnu.org; Wed, 02 Mar 2011 18:06:24 -0500 Received: from mars.hitrost.net ([91.185.211.18]:54471) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Puv7e-0003cC-U1 for emacs-orgmode@gnu.org; Wed, 02 Mar 2011 18:06:23 -0500 In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Carsten Dominik Cc: emacs-orgmode List Hi, Carsten, Yes, it's really neat. I just realized, though, that there *is* an equally clean way to generate such tables in OOo Calc (which the Org spreadsheet has all but replaced for my needs): - Place 1 in cell B1. Drag across to get 1-10 in cells B1:K1. - Place 1 in cell A2. Drag down to get 1-10 in cells A2:A11. - In cell B2, type the formula =B1:K1*A2:A11. Do NOT press Enter, press Ctrl-Shift-Enter (or Cmd-Shift-Enter on Mac) to make it an "array formula" (it presents as {=B1:K1*A2:A11}). - Hey presto, the table is filled. Yours, Christian On 3/2/11 6:31 PM, Carsten Dominik wrote: > Hi Christian, > > thanks for the great example! I guess this is really something > Org has over other spreadsheets. No copy-and-paste-with-modification, > just a single formula. > > - Carsten > > On 2.3.2011, at 17:11, Christian Moe wrote: > >> Hi, >> >> Row formulas are great! I've missed this, but learned to work around it, since I I just assumed that if you hadn't already done it, it was not a reasonable thing to ask for. >> >> Testing... So now we can simply do e.g.: >> >> #+CAPTION: A multiplication table >> | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | >> |----+---+---+---+---+---+---+---+---+---+----| >> | 1 | | | | | | | | | | | >> | 2 | | | | | | | | | | | >> | 3 | | | | | | | | | | | >> | 4 | | | | | | | | | | | >> | 5 | | | | | | | | | | | >> | 6 | | | | | | | | | | | >> | 7 | | | | | | | | | | | >> | 8 | | | | | | | | | | | >> | 9 | | | | | | | | | | | >> | 10 | | | | | | | | | | | >> #+TBLFM: @2$2..@11$11=@1*$1 >> >> C-c C-c...and hey presto: >> >> #+CAPTION: A multiplication table >> | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | >> |----+----+----+----+----+----+----+----+----+----+-----| >> | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | >> | 2 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20 | >> | 3 | 3 | 6 | 9 | 12 | 15 | 18 | 21 | 24 | 27 | 30 | >> | 4 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 40 | >> | 5 | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 | >> | 6 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | 60 | >> | 7 | 7 | 14 | 21 | 28 | 35 | 42 | 49 | 56 | 63 | 70 | >> | 8 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72 | 80 | >> | 9 | 9 | 18 | 27 | 36 | 45 | 54 | 63 | 72 | 81 | 90 | >> | 10 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | >> #+TBLFM: @2$2..@11$11=@1*$1 >> >> >> Yours, >> Christian >> >> On 3/1/11 3:28 PM, Carsten Dominik wrote: >>> Hi everyone, >>> >>> A frequently requested feature for tables has been to >>> be able to define row formulas in a way similar to column >>> formulas. The patch below allows things like >>> >>> @3= >>> @2$2..@5$7= >>> @I$2..@II$4= >>> >>> as the left hand side for table formulas in order to >>> write a formula that is valid for an entire column or >>> for a rectangular section in a table. >>> >>> Note that in contrast to column formulas, @3= will not >>> automatically skip a "header column" or field formulas in the >>> same row. In fact, making both a range formula and a field >>> point to the same field is forbidden and throws an error. >>> So to have a formula apply to all but the first column, use >>> something like this: >>> >>> @3$2..@3$8=.... >>> >>> Testing is welcome, but I am confident that this works >>> pretty well. >>> >>> Bastien, please let me know if you want to have this integrated >>> before the release, then I will do so. >>> >>> >>> >>> >>> _______________________________________________ >>> Emacs-orgmode mailing list >>> Please use `Reply All' to send replies to the list. >>> Emacs-orgmode@gnu.org >>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode >> > > -- Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode