When faced with this sort of issue, and assuming the data isn't constantly changing, then I usually have one row that contains the real formulas and I copy > paste special (values) over the other formulas so I can work with the spreadsheet. Any time you need to accommodate changed data, then you copy the formula down, make a cuppa while the data recalculates and then copy > paste special values again. Not perfect but I understand the frustration of working with slow workbooks.
An alternative method (for when the data is constantly changing either within the spreadsheet or on the other spreadsheet) is to turn off the auto calculation and manually force the recalculation (by pressing F9) any time I want the data refreshed. To turn off the auto calculation go to menu option Tools > Options > Calculation > set to 'Manual'.
I'm the first to admit neither method is perfect but you do what you have to to get the job done. If anyone has another method they use I would want to hear about that too.
The issue with the Indirect function is that it is volatile. This means that any time you want to calculate anything, every formula that contains this function will be recalculated whether it needs it or not (hence my temporary solutions of either removing the formulas or manual recalculation). Another anomaly with Indirect is that Excel doesn't immediately recognise this formula as containing a link to an external workbook - notice the other spreadsheet will not be listed as an external link under menu option Edit > Links.
Andrew