Dear All, 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); However, in the second table, if time durations are used, how can an empty field be represented? For an empty row @6 the current first formula always computes 00:00 as opposed to an empty field. Unfortunately, later, vmean includes 00:00 in the computation, instead of skipping it. That is why the second formula produces 06:29, instead of 08:06 for @>$6. Is there a way to force the first formula to produce a truly empty field? Or is there a way to tell vmean to skip 00:00 durations? #+TBLNAME: does_not_work_with_duration | h | start | end | h | sum | h | h | |---+-------+-------+---+-------+-------+---| | | 08:54 | 18:01 | | 09:07 | | | | | 11:45 | 15:50 | | 04:05 | | | | | 09:20 | 20:23 | | 11:03 | | | | | 10:25 | 18:37 | | 08:12 | | | | | | | | 00:00 | | | |---+-------+-------+---+-------+-------+---| | | | | | 32:27 | 06:29 | | #+TBLFM: $5=if(typeof($3-$2)==12, string(""), $3-$2);EU::@>$5=vsum(@2..@-1);U #+TBLFM: @>$6=vmean(@2$5..@-1$5);U Thank you for your help! Kristof