James,
I'd make the point that although a SUMPRODUCT is not a CSE Array (CTRL + SHIFT + ENTER) it is processed in the same way - SUMPRODUCT is not deemed to be significantly more efficient than a traditional array - it's advantage over a CSE is that it does not require CSE (!) - ie more robust in the fact of end user alteration.
With use of OFFSET you're making the SUMPRODUCT Volatile (see link in sig.) - this means every time XL recalculates all of your SUMPRODUCTs will recalculate regardless of whether or not they were impacted directly by the change made that caused the recalc... normally XL employs smart recalculation to only calculate cells directly impacted by whatever change was made - with Volatiles this does not apply and all are recalculated regardless... this brings calculation overheads obviously which are compounded when either there are large numbers of volatile functions (in big models) and/or the volatile functions are poor performers anyway (ie Arrays and this incl. Sumproduct).... so where possible avoid using Volatile Arrays... you could possibly use INDEX rather than OFFSET.
All that being said you may not have an option...what is the formula in HF - can you alter this to default to 1 or does that cause issues elsewhere ?
Assuming you can't revise HF then a CSE array equivalent which would resolve your issue (though I appreciate you would prefer to avoid):
Bookmarks