Could you double-check your numbers here? I'm not sure what's going on when :Column 2 == 15.
But I think this is what you want (based on David's script):
If(
:Column 2 != Lag( :Column 2 ) | Row() == 1, :Column 1,
Row() == 2 | Lag( :Column 2, 2 ) != :Column 2, :Column 2 - (:Column 1 + Lag( :Column 1 )),
Lag( :Result ) - :Column 1
);