First, your existing formula doesn't need the =sum() function.
This is equivalent:
=IF(B39-C39=0," at estimate",IF(B39-C39>0,B39-C39& " over",
ABS(B39-C39)& " under"))
In fact, instead of using b39-c39=0, I'd just check to compare b39 with c39:
=IF(B39=C39," at estimate",IF(B39>C39,B39-C39& " over",
ABS(B39-C39)& " under"))
You could use this formula:
=b39-c39
and a custom format of:
General" Over";General" Under";"at estimate";@
The custom format has 4 parts:
positive;negative;zero;text
You may like this custom format slightly better:
General" Over";[Red]General" Under";"at estimate";@
(You'll see the ## Under in Red.)