From mboxrd@z Thu Jan 1 00:00:00 1970 From: Cecil Westerhof Subject: Re: Difference between two rows Date: Sun, 1 Jun 2014 14:24:39 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=001a11c20e7ad90f8604fac55c5d Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:52919) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wr4ob-0005se-Jv for emacs-orgmode@gnu.org; Sun, 01 Jun 2014 08:24:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wr4oa-0005GS-Mq for emacs-orgmode@gnu.org; Sun, 01 Jun 2014 08:24:41 -0400 Received: from mail-qg0-x22f.google.com ([2607:f8b0:400d:c04::22f]:62665) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wr4oa-0005GO-Gr for emacs-orgmode@gnu.org; Sun, 01 Jun 2014 08:24:40 -0400 Received: by mail-qg0-f47.google.com with SMTP id j107so9107768qga.34 for ; Sun, 01 Jun 2014 05:24:40 -0700 (PDT) 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: emacs-orgmode@gnu.org --001a11c20e7ad90f8604fac55c5d Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 2014-06-01 13:57 GMT+02:00 Michael Brand : > On Sun, Jun 1, 2014 at 1:38 PM, Cecil Westerhof > wrote: > > I like to calculate in a table the difference between the value in a > field > > in the current row and the previous field. How would I do that? > > > > Something like: > > |-------+------------| > > | value | difference | > > |-------+------------| > > | 12 | | > > | 15 | 3 | > > | 83 | 68 | > > | 87 | 4 | > > | 85 | -2 | > > |-------+------------| > > For such cases I prefer vlen(): > > #+TBLFM: $2 =3D if(vlen(@II..@0) =3D=3D 1, string(""), $1 - @-1$1); E > =E2=80=8BCombining it with your previous help I now have (not every field w= ill be filled, and the table is a little different): #+TBLFM: @-I$4..@+I$4 =3D if("$3" =3D=3D "nan", string(""), $3 - $2) ; E f-= 1 :: @-I$5..@+I$5 =3D if(vlen(@II..@0) =3D=3D 1 || "$3" =3D=3D "nan", string("")= , $3 - @-1$3); E f-1=E2=80=8B =E2=80=8BAt the moment this is good enough. But what if I would want to kno= w the difference between the previous filled one, divided by the =E2=80=8Bdistanc= e? For example: |-------+------------| | value | difference | |-------+------------| | 12 | | | 15 | 3 | | | | | 83 | 34 | | | | | | | | | | | 87 | 1 | | | | | | | | | | | 85 | -0.5 | | | | |-------+------------| --=20 Cecil Westerhof --001a11c20e7ad90f8604fac55c5d Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxkaXYgY2xhc3M9ImdtYWls X3F1b3RlIj4yMDE0LTA2LTAxIDEzOjU3IEdNVCswMjowMCBNaWNoYWVsIEJyYW5kIDxzcGFuIGRp cj0ibHRyIj4mbHQ7PGEgaHJlZj0ibWFpbHRvOm1pY2hhZWwuY2guYnJhbmRAZ21haWwuY29tIiB0 YXJnZXQ9Il9ibGFuayI+bWljaGFlbC5jaC5icmFuZEBnbWFpbC5jb208L2E+Jmd0Ozwvc3Bhbj46 PGJyPg0KPGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAw cHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRp bmctbGVmdDoxZXgiPk9uIFN1biwgSnVuIDEsIDIwMTQgYXQgMTozOCBQTSwgQ2VjaWwgV2VzdGVy aG9mICZsdDs8YSBocmVmPSJtYWlsdG86Y2xkd2VzdGVyaG9mQGdtYWlsLmNvbSI+Y2xkd2VzdGVy aG9mQGdtYWlsLmNvbTwvYT4mZ3Q7IHdyb3RlOjxicj4NCjxkaXY+PGRpdiBjbGFzcz0iaDUiPg0K Jmd0OyBJIGxpa2UgdG8gY2FsY3VsYXRlIGluIGEgdGFibGUgdGhlIGRpZmZlcmVuY2UgYmV0d2Vl biB0aGUgdmFsdWUgaW4gYSBmaWVsZDxicj4NCiZndDsgaW4gdGhlIGN1cnJlbnQgcm93IGFuZCB0 aGUgcHJldmlvdXMgZmllbGQuIEhvdyB3b3VsZCBJIGRvIHRoYXQ/PGJyPg0KJmd0Ozxicj4NCiZn dDsgU29tZXRoaW5nIGxpa2U6PGJyPg0KJmd0OyB8LS0tLS0tLSstLS0tLS0tLS0tLS18PGJyPg0K Jmd0OyB8IHZhbHVlIHwgZGlmZmVyZW5jZSB8PGJyPg0KJmd0OyB8LS0tLS0tLSstLS0tLS0tLS0t LS18PGJyPg0KJmd0OyB8IMKgIMKgMTIgfCDCoCDCoCDCoCDCoCDCoCDCoHw8YnI+DQomZ3Q7IHwg wqAgwqAxNSB8IMKgIMKgIMKgIMKgIMKgMyB8PGJyPg0KJmd0OyB8IMKgIMKgODMgfCDCoCDCoCDC oCDCoCA2OCB8PGJyPg0KJmd0OyB8IMKgIMKgODcgfCDCoCDCoCDCoCDCoCDCoDQgfDxicj4NCiZn dDsgfCDCoCDCoDg1IHwgwqAgwqAgwqAgwqAgLTIgfDxicj4NCiZndDsgfC0tLS0tLS0rLS0tLS0t LS0tLS0tfDxicj4NCjxicj4NCjwvZGl2PjwvZGl2PkZvciBzdWNoIGNhc2VzIEkgcHJlZmVyIHZs ZW4oKTo8YnI+DQo8YnI+DQojK1RCTEZNOiAkMiA9IGlmKHZsZW4oQElJLi5AMCkgPT0gMSwgc3Ry aW5nKCZxdW90OyZxdW90OyksICQxIC0gQC0xJDEpOyBFPGJyPjwvYmxvY2txdW90ZT48ZGl2Pjxi cj48ZGl2IGNsYXNzPSJnbWFpbF9kZWZhdWx0IiBzdHlsZT0iZm9udC1mYW1pbHk6Y291cmllciBu ZXcsbW9ub3NwYWNlO2Rpc3BsYXk6aW5saW5lIj7igItDb21iaW5pbmcgaXQgd2l0aCB5b3VyIHBy ZXZpb3VzIGhlbHAgSSBub3cgaGF2ZSAobm90IGV2ZXJ5IGZpZWxkIHdpbGwgYmUgZmlsbGVkLCBh bmQgdGhlIHRhYmxlIGlzIGEgbGl0dGxlIGRpZmZlcmVudCk6PGJyPg0KIytUQkxGTTogQC1JJDQu LkArSSQ0ID0gaWYoJnF1b3Q7JDMmcXVvdDsgPT0gJnF1b3Q7bmFuJnF1b3Q7LCBzdHJpbmcoJnF1 b3Q7JnF1b3Q7KSwgJDMgLSAkMikgOyBFIGYtMSA6OiBALUkkNS4uQCtJJDUgPSBpZih2bGVuKEBJ SS4uQDApID09IDEgfHwgJnF1b3Q7JDMmcXVvdDsgPT0gJnF1b3Q7bmFuJnF1b3Q7LCBzdHJpbmco JnF1b3Q7JnF1b3Q7KSwgJDMgLSBALTEkMyk7IEUgZi0x4oCLPC9kaXY+DQrCoDwvZGl2Pjxicj48 L2Rpdj48ZGl2IGNsYXNzPSJnbWFpbF9kZWZhdWx0IiBzdHlsZT0iZm9udC1mYW1pbHk6Y291cmll ciBuZXcsbW9ub3NwYWNlIj7igItBdCB0aGUgbW9tZW50IHRoaXMgaXMgZ29vZCBlbm91Z2guIEJ1 dCB3aGF0IGlmIEkgd291bGQgd2FudCB0byBrbm93IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhl IHByZXZpb3VzIGZpbGxlZCBvbmUsIGRpdmlkZWQgYnkgdGhlIOKAi2Rpc3RhbmNlPzxicj4NCjxi cj48L2Rpdj48ZGl2IGNsYXNzPSJnbWFpbF9kZWZhdWx0IiBzdHlsZT0iZm9udC1mYW1pbHk6Y291 cmllciBuZXcsbW9ub3NwYWNlIj5Gb3IgZXhhbXBsZTo8YnI+fC0tLS0tLS0rLS0tLS0tLS0tLS0t fDxicj58IHZhbHVlIHwgZGlmZmVyZW5jZSB8PGJyPnwtLS0tLS0tKy0tLS0tLS0tLS0tLXw8YnI+ fMKgwqDCoCAxMiB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8PGJyPnzCoMKgwqAgMTUgfMKgwqDC oMKgwqDCoMKgwqDCoCAzIHw8YnI+DQp8wqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHw8YnI+fMKgwqDCoCA4MyB8wqDCoMKgwqDCoMKgwqDCoCAzNCB8PGJyPnzCoMKgwqDCoMKg wqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfDxicj58wqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHw8YnI+fMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 PGJyPnzCoMKgwqAgODcgfMKgwqDCoMKgwqDCoMKgwqDCoCAxIHw8YnI+fMKgwqDCoMKgwqDCoCB8 wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8PGJyPnzCoMKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfDxicj58wqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHw8YnI+ DQp8wqDCoMKgIDg1IHzCoMKgwqDCoMKgwqAgLTAuNSB8PGJyPnzCoMKgwqDCoMKgwqAgfMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgfDxicj58LS0tLS0tLSstLS0tLS0tLS0tLS18PGJyPjwvZGl2Pjxi cj4tLSA8YnI+Q2VjaWwgV2VzdGVyaG9mDQo8L2Rpdj48L2Rpdj4NCg== --001a11c20e7ad90f8604fac55c5d--