From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: Re: org-table and formulas Date: Wed, 13 Jan 2010 12:59:54 +0100 Message-ID: <5378FAF3-867E-4E97-B43A-67A5D4B2CCBA@gmail.com> References: <4B4B7CD5.80907@mapgears.com> <87y6k2gv6h.fsf@mundaneum.com> <4B4DAB04.5000503@mapgears.com> Mime-Version: 1.0 (Apple Message framework v936) Content-Type: text/plain; charset=ISO-8859-1; format=flowed; delsp=yes Content-Transfer-Encoding: quoted-printable Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NV1tL-0001mg-Sn for emacs-orgmode@gnu.org; Wed, 13 Jan 2010 07:00:03 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NV1tH-0001ll-22 for emacs-orgmode@gnu.org; Wed, 13 Jan 2010 07:00:03 -0500 Received: from [199.232.76.173] (port=34869 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NV1tG-0001li-U6 for emacs-orgmode@gnu.org; Wed, 13 Jan 2010 06:59:58 -0500 Received: from ey-out-1920.google.com ([74.125.78.145]:43959) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NV1tG-00023I-GD for emacs-orgmode@gnu.org; Wed, 13 Jan 2010 06:59:58 -0500 Received: by ey-out-1920.google.com with SMTP id 4so4090986eyg.34 for ; Wed, 13 Jan 2010 03:59:57 -0800 (PST) In-Reply-To: <4B4DAB04.5000503@mapgears.com> 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: Alan Boudreault Cc: =?ISO-8859-1?Q?S=E9bastien_Vauban?= , emacs-orgmode@gnu.org Hi Alan, I think what you would have to do is to build a lisp function that =20 creates the full reference by string manipulation, and then calls org-=20= table-get-remote-range directly to retrieve the result. That function returns a string or a list of strings, so conversion =20 might be needed depending on how you use the result. - Carsten On Jan 13, 2010, at 12:14 PM, Alan Boudreault wrote: > Hi S=E9bastien and thank you for your answer. > > The problem with that technique is that I'll have to name ALL the =20 > cell for ALL the colomn. Here's an example of my table: > > #+TBLNAME: FOOD > | Name | Brand | Amounts (g) | Calories | Protein =20= > | Carbohydrate | Fat | > |-----------------+---------------+-------------+----------+---------=20= > +--------------+------| > | Poitrine Poulet | KirkLand | 100 | 100 =20 > | 24 | 0 | 1 | > | Capeli d'angelo | Primo | 85 | 300 | =20= > 10 | 63 | 1 | > | Couscous | Clic | 62 | 220 =20 > | 8 | 46 | 1 | > | Fromage Cottage | Sealtest | 125 | 100 | 15 =20= > | 8 | 1 | > | Ficello | Black Diamond | 21 | 60 =20= > | 6 | 0 | 4 | > | Concombre cru | | 100 | 15 | =20 > 0.65 | 3.63 | 0.11 | > | Clementine cru | | 100 | 47 | =20 > 0.85 | 12.02 | 0.15 | > > In the table 2, I would like to be able to just set a column to ie. =20= > 2 (for "Poitrine Poulet"), then I'll be able to get all the info of =20= > the different columns I need to do my calculs. I see there is also a =20= > "_" option for row name, but I'm unsure on how to specify the column =20= > desired with that name and how to get it evaluated if I need to =20 > concat something... > > regards, > Alan > > S=E9bastien Vauban wrote: >> Hi Alan, >> >> Alan Boudreault wrote: >> >>> Here's what I'm trying to do (without success) in my spreadsheet: >>> >>> I have a first table : >>> >>> #+TBLNAME: table1 >>> | ... |... |.... |...|... >>> >>> and a second table: >>> >>> #+TBLNAME: table2 >>> | line_reference | ... |... |.... |...|... >>> >>> The line_reference is the line number to get some information in =20 >>> the table1. >>> So in a cell of the table2, I tried a formula like: remote(table1,@=20= >>> $1$3) ($1 >>> =3D the line_reference) which of course, didn't work. >>> >>> then I tried to use elisp: remote(table1,'(concat "@" $1 =20 >>> "$3")') .... but no >>> success anyway. >>> >>> after all, I decided to merge my 2 tables because it looks like I =20= >>> can use >>> elisp inside a org function (remote). The last tried formula was: =20= >>> '(concat >>> "@" $1 "$3")' ,($1 =3D the line_reference). The problem of this =20 >>> formula is >>> only that I got the string "@2$3" inside the cell and it's not =20 >>> evaluated as >>> a formula. >>> >>> Could anyone give me some hint to get done what I'm trying to do? >>> >> >> What I do, which works: >> >> - give a name to the cell in table1 >> - reference it (in table2) by its name >> >> >> #+TBLNAME: Eau >> | | Date | Relev=E9 m3 | Consommation | Prix TVAC | >> |---+------------------+-----------+--------------+-----------| >> | | [2009-11-15 Sun] | 2072.6263 | 0.0000 | 0.00 | >> | | [2009-11-22 Sun] | 2074.1774 | 1.5511 | 1.55 | >> | | [2009-11-29 Sun] | 2076.0834 | 1.9060 | 1.91 | >> | | [2009-12-06 Sun] | 2077.6757 | 1.5923 | 1.59 | >> | | [2009-12-13 Sun] | 2079.2140 | 1.5383 | 1.54 | >> | | [2009-12-20 Sun] | 2081.4222 | 2.2082 | 2.21 | >> | | [2009-12-27 Sun] | 2083.2146 | 1.7924 | 1.79 | >> | | [2010-01-03 Sun] | 2085.4916 | 2.2770 | 2.28 | >> | | [2010-01-10 Sun] | 2087.4283 | 1.9367 | 1.94 | >> | ^ | | | | Eau | >> #+TBLFM: $4=3D@+0$-1-@-1$-1;%.4f::$5=3D$4*1;%.2f::@2$4=3D0;%.4f >> >> >> | =C9nergie | Prix TVAC | >> |-------------+-----------| >> | Eau | 1.94 | >> | Gaz | 156.81 | >> | =C9lectricit=E9 | 11.64 | >> |-------------+-----------| >> | Total | 170.39 | >> #+TBLFM: @2$2=3Dremote(Eau,$Eau)::@3$2=3Dremote(Gaz,=20 >> $Gaz)::@4$2=3Dremote(Elec,$Elec)::@5$2=3Dvsum(@-I..@-II);%.2f >> >> Best regards, >> Seb >> >> > > > --=20 > Alan Boudreault > Mapgears > http://www.mapgears.com/ > > > _______________________________________________ > 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 - Carsten