When using SUMPRODUCT it is imperative you keep ranges as lean as possible.
If we take one formula:
=SUMPRODUCT((((('FY0910'!$B$2:$B$65536=$F9)*('FY0910'!$AB$2:$AB$65536=$G9)*('FY0910'!$AD$2:$AD$65536=AD$7)*('FY0910'!$S$2:$S$65536=$AD$2)*('FY0910'!$C$2:$C$65536=$AD$3)*('FY0910'!$N$2:$N$65536)))))
From the above we can see:
a) you're referencing 65535 cells in each range
b) you have 6 ranges
This means you're referencing 65535 * 6 -> 393,210 cells in any given SUMPRODUCT (ignoring criteria)
If you then consider that you have thousands of these formulae it means you're looking at literally millions of cells.
Not surprising therefore that performance is pretty hideous (you also have lots of Conditional Formatting which is super-volatile)
Given use of XL2003 I would suggest you first look to avoid the need for SUMPRODUCT altogether... IMO SUMPRODUCT should be used in moderation.
First thing therefore would be to create a Key of all the key pieces of info. on each row in FY0910 & FY1011 sheets, eg:
With this key in place you can now dispense with SUMPRODUCT and use the much more efficient SUMIF function on your SERIESWISE sheet such that:
In terms of actual comparison... if we look only at calculating the matrix AD9:AJ374:
-- SUMPRODUCT approach took on average 80 seconds to calculate
-- SUMIF utilising "key" column on FY0910/FY1011 sheets took on average 0.02 seconds to calculate
Bookmarks