Hi Kristof,
Kristof Ralovich <[email protected]> writes:
> it appears to me that the concept of "empty field" is not defined for
> time durations, or it is quite different to how it is defined for
> numbers (using org-mode 9.1.9).
>
> In the first table, the empty row @6 produces an empty field for the sum
> ($5, first formula), that vmean is able to "skip" (second formula) and
> gives the expected result 8.25 (=33/4).
>
> #+TBLNAME: works_with_numbers
> | h | start | end | h | sum | h | h |
>
> |---+-------+-----+---+-----+------+---|
> | | 08 | 18 | | 10 | | |
> | | 11 | 15 | | 4 | | |
> | | 09 | 20 | | 11 | | |
> | | 10 | 18 | | 8 | | |
> | | | | | | | |
> |---+-------+-----+---+-----+------+---|
> | | | | | 33 | 8.25 | |
>
> #+TBLFM: $5=if(typeof($3-$2)==12, string(""), $3-$2);E::@>$5=vsum(@2..@-1);
> #+TBLFM: @>$6=vmean(@2$5..@-1$5);
Can you provide a more minimal example?
The following table works correctly here (maint and master):
| mean1 | mean2 |
|-------+-------|
| 08:00 | 08:00 |
| 09:00 | 09:00 |
| 00:00 | |
|-------+-------|
| 05:40 | 08:30 |
#+TBLFM: @5$1=vmean(@2..@-1);U
#+TBLFM: @5$2=vmean(@2..@-1);U
So I suspect this is something wrong with your first formula:
> #+TBLFM: $5=if(typeof($3-$2)==12, string(""), $3-$2);E
Let me know if you manage to nail down something more precise.
Thanks,
--
Bastien