I am trying the following:
    #+TBLFM: @-I$4..@+I$4 = if("$3" == "nan", string(""), $3 - $2) ; %.1f
and:
    #+TBLFM: @-I$4..@+I$4 = if("$3" == "", string(""), $3 - $2) ; %.1f

But in both case the fourth field is filled when the third field is empty. What am I doing wrong?

I am using version 8.2.1.

--
Cecil Westerhof