I have the following table: |---+------------+---------+---------+--------+--------+-------+-------------------+----------+--------| | | datum | kmstand | prijs/l | liters | dagen | prijs | km's | prijs/km | km/l | |---+------------+---------+---------+--------+--------+-------+-------------------+----------+--------| | # | | 155111 | | | | | | | | | # | 2007-07-09 | 156146 | 102.2 | 62.25 | #ERROR | 63.62 | 1035 | 6.147 | 16.627 | | # | 2007-09-11 | 6953 | 97.8 | 47.75 | #ERROR | 46.70 | Verkeerde kmstand | | | | # | | | | | #ERROR | | | | | |---+------------+---------+---------+--------+--------+-------+-------------------+----------+--------| #+TBLFM: $6='(if (and (not (check-if-after-hline)) (nz @-1$2) (nz $2)) (- (time-to-days (org-read-date t t "$2")) (time-to-days (org-read-date t t "@-1$2"))) "");S::$7='(if (and (nz $4) (nz $5)) (format "%.2f" (/ (* $4 $5) 100)) "");N::$8='(if (and (nz @-1$3) (nz $3)) (if (> $3 @-1$3) (- $3 @-1$3) (if (not (check-if-after-hline)) "Verkeerde kmstand" "")) "");N::$9='(if (and (nz $8) (nz $7)) (format "%.3f" (/ (* $7 100) $8)) "");N::$10='(if (and (nz $8) (nz $5)) (format "%.3f" (/ $8 $5)) "");N
With debug I get: Substitution history of formula Orig: '(if (and (not (check-if-after-hline)) (nz @-1$2) (nz $2)) (- (time-to-days (org-read-date t t "$2")) (time-to-days (org-read-date t t "@-1$2"))) "");S $xyz-> '(if (and (not (check-if-after-hline)) (nz @-1$2) (nz $2)) (- (time-to-days (org-read-date t t "$2")) (time-to-days (org-read-date t t "@-1$2"))) "") @r$c-> '(if (and (not (check-if-after-hline)) (nz #(" " 0 12 (lazy-lock t face org-table hilit-chg hilit-chg))) (nz $2)) (- (time-to-days (org-read-date t t "$2")) (time-to-days (org-read-date t t "#(" " 0 12 (lazy-lock t face org-table hilit-chg hilit-chg))"))) "") $1-> '(if (and (not (check-if-after-hline)) (nz #(" " 0 12 (lazy-lock t face org-table hilit-chg hilit-chg))) (nz #("2007-07-09" 0 3 (hilit-chg hilit-chg lazy-lock t) 3 5 (hilit-chg hilit-chg lazy-lock t) 5 6 (hilit-chg hilit-chg lazy-lock t) 6 8 (hilit-chg hilit-chg lazy-lock t) 8 9 (hilit-chg hilit-chg lazy-lock t) 9 10 (hilit-chg hilit-chg lazy-lock t)))) (- (time-to-days (org-read-date t t "#("2007-07-09" 0 3 (hilit-chg hilit-chg lazy-lock t) 3 5 (hilit-chg hilit-chg lazy-lock t) 5 6 (hilit-chg hilit-chg lazy-lock t) 6 8 (hilit-chg hilit-chg lazy-lock t) 8 9 (hilit-chg hilit-chg lazy-lock t) 9 10 (hilit-chg hilit-chg lazy-lock t))")) (time-to-days (org-read-date t t "#(" " 0 12 (lazy-lock t face org-table hilit-chg hilit-chg))"))) "") Result: #ERROR Format: NONE Final: #ERROR If I use the code after $1, I get: Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p #(" " 0 12 (lazy-lock t face org-table hilit-chg hilit-chg))) =(#(" " 0 12 (lazy-lock t face org-table hilit-chg hilit-chg)) 0) (not (= n 0)) nz(#(" " 0 12 (lazy-lock t face org-table hilit-chg hilit-chg))) (and (not (check-if-after-hline)) (nz #(" " 0 12 ...)) (nz #("2007-07-09" 0 3 ... 3 5 ... 5 6 ... 6 8 ... 8 9 ... 9 10 ...))) (if (and (not ...) (nz #(" " 0 12 ...)) (nz #("2007-07-09" 0 3 ... 3 5 ... 5 6 ... 6 8 ... 8 9 ... 9 10 ...))) (- (time-to-days ...) (time-to-days ...)) "") eval((if (and (not ...) (nz #(" " 0 12 ...)) (nz #("2007-07-09" 0 3 ... 3 5 ... 5 6 ... 6 8 ... 8 9 ... 9 10 ...))) (- (time-to-days ...) (time-to-days ...)) "")) eval-last-sexp-1(t) eval-last-sexp(t) eval-print-last-sexp() call-interactively(eval-print-last-sexp) recursive-edit() byte-code(... debug(error (wrong-type-argument number-or-marker-p #(" " 0 10 (lazy-lock t face org-table hilit-chg hilit-chg)))) =(#(" " 0 10 (lazy-lock t face org-table hilit-chg hilit-chg)) 0) (not (= n 0)) nz(#(" " 0 10 (lazy-lock t face org-table hilit-chg hilit-chg))) (and (not (check-if-after-hline)) (nz #(" " 0 10 ...)) (nz #("20070709" 0 3 ... 3 4 ... 4 5 ... 5 6 ... 6 7 ... 7 8 ...))) (if (and (not ...) (nz #(" " 0 10 ...)) (nz #("20070709" 0 3 ... 3 4 ... 4 5 ... 5 6 ... 6 7 ... 7 8 ...))) (- (time-to-days ...) (time-to-days ...)) "") eval((if (and (not ...) (nz #(" " 0 10 ...)) (nz #("20070709" 0 3 ... 3 4 ... 4 5 ... 5 6 ... 6 7 ... 7 8 ...))) (- (time-to-days ...) (time-to-days ...)) "")) eval-last-sexp-1(t) eval-last-sexp(t) eval-print-last-sexp() call-interactively(eval-print-last-sexp) recursive-edit() byte-code(... debug(error (void-variable nz)) (and (not (check-if-after-hline)) nz (#(" " 0 10 ...)) (nz #("20070709" 0 3 ... 3 4 ... 4 5 ... 5 6 ... 6 7 ... 7 8 ...))) (if (and (not ...) nz (#(" " 0 10 ...)) (nz #("20070709" 0 3 ... 3 4 ... 4 5 ... 5 6 ... 6 7 ... 7 8 ...))) (- (time-to-days ...) (time-to-days ...)) "") eval((if (and (not ...) nz (#(" " 0 10 ...)) (nz #("20070709" 0 3 ... 3 4 ... 4 5 ... 5 6 ... 6 7 ... 7 8 ...))) (- (time-to-days ...) (time-to-days ...)) "")) eval-last-sexp-1(t) eval-last-sexp(t) eval-print-last-sexp() call-interactively(eval-print-last-sexp) recursive-edit() byte-code(... debug(error (void-variable nz)) (and (not (check-if-after-hline)) nz (#(" " 0 10 ...)) (nz #("20070709" 0 3 ... 3 4 ... 4 5 ... 5 6 ... 6 7 ... 7 8 ...))) (if (and (not ...) nz (#(" " 0 10 ...)) (nz #("20070709" 0 3 ... 3 4 ... 4 5 ... 5 6 ... 6 7 ... 7 8 ...))) (- (time-to-days ...) (time-to-days ...)) "") eval((if (and (not ...) nz (#(" " 0 10 ...)) (nz #("20070709" 0 3 ... 3 4 ... 4 5 ... 5 6 ... 6 7 ... 7 8 ...))) (- (time-to-days ...) (time-to-days ...)) "")) eval-last-sexp-1(t) eval-last-sexp(t) eval-print-last-sexp() call-interactively(eval-print-last-sexp) recursive-edit() byte-code(... debug(error (wrong-type-argument integerp nil)) decode-time((nil nil nil 9 7 2007 nil nil nil)) time-to-day-in-year((nil nil nil 9 7 2007 nil nil nil)) eval((time-to-day-in-year (parse-time-string "2007-07-09"))) eval-last-sexp-1(t) eval-last-sexp(t) eval-print-last-sexp() call-interactively(eval-print-last-sexp) recursive-edit() byte-code(... debug(error (void-function parse_time_string)) (parse_time_string "2007-07-09") eval((parse_time_string "2007-07-09")) eval-last-sexp-1(t) eval-last-sexp(t) eval-print-last-sexp() call-interactively(eval-print-last-sexp) Where there stands 'byte-code(...', there was some byte-code which I could not copy for one reason or another. nz is a function which checks if a field is empty (or zero). And this does not give a problem in the other columns. So what am I doing wrong? To be sure, here is the code of nz: ;;; notZero (defun nz (n) (interactive "nValue: ") (not (= n 0.)) ) -- Cecil Westerhof <[EMAIL PROTECTED]> _______________________________________________ Emacs-orgmode mailing list Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode