Look, if data is to be keyed in, or imported in, the asterisk form of
Sumproduct is the way to go ... warns you of mistakes ... BUT ... if you're
populating your calculating columns with formulas returning nulls, you
*should* be using the unary form, as Dave suggested.
Now that you've revised your formula to return zeroes, compare both forms of
the function and see if they both return the same result.
If they don't, that means that you have true numbers, and text that looks
like numbers, in your datalist.
That's not a good thing to have happening, at any time!
You can use a 'helper" column, and reference it to any questionable columns,
to see if all your numbers are numeric numbers.
Simply use this in any vacant column:
=Isnumber(M26)
and drag it down to see if every row returns a TRUE.
If you see a FALSE, that's the row(s) to fix!
On the other hand, if you insist on using the asterisk form, and you're
going to use CF to fix the display, then you'll have to revise *all* your
other formulas to match the revised value of your calculating columns.
FROM:
=IF(M28="","",IF(M29="",SUM(M$26:M28)-SUM(O$26:O27),""))
TO:
=IF(M28=0,0,IF(M29=0,SUM(M$26:M28)-SUM(O$26:O27),0))
It *may* become a nightmare trying to change everything around.
Your choice!