Given my own antipathy towards unnecessary use of INDIRECT, just don't use it. First, summarizing your formulas.
Rankings!AR9:
Rankings!AX30:
For State = "NSW", this refers to AX32.
Rankings!AX32:
At this point, an alternative becomes clear.
INDIRECT(AX30) = INDIRECT("'Heat Map'!B7:D9") = 'Heat Map'!B7:D9 = INDEX('Heat Map'!B$1:B$27,AX54):INDEX('Heat Map'!D$1:D$27,AY54)
Which means the formula in Rankings!AR9 could be
I note that you have event handlers in your sample workbook to enable/disable calculation, which indicates to me that your full workbook has so many INDIRECT calls that normal recalc performance stinks. That's precisely what's wrong with INDIRECT: it's volatile, so ANYTHING which triggers recalc makes all formulas calling volatile functions like INDIRECT recalc. When those formulas are using INDIRECT as multiple cell range arguments to lookup or newer FILTER/SORT*/UNIQUE functions, that can be quite expensive in terms of processor usage.
INDEX(...):INDEX(...) isn't volatile, and if the 1st argument to each INDEX call refers to smallish ranges, they should be much more efficient.
Finally, I still have @#$%&*! Office 2013 at work (@#$%&*! SDI but none of the useful new functions, worst of all worlds), Office 365 Insider at home, but not Office 2019 Pro Plus, so I can't reproduce your actual error.
Bookmarks