So in trying to troubleshoot my laggy file, I got rid of all Volatile functions (which I understand to be speed killers), only to learn that the #1 culprit may in fact be the 120 conditional formatting (CF) rules I have, which my research indicates are always volatile, which I guess makes sense. But I really can't do without the CF, because it provides the highlight-indicators my file (which pulls in real-time stock quotes) requires. This 3-part series gave me some good background on CF, and suggested that CF rules themselves not be overly complex because they're always volatile aka/ get re-calculated with every recalculation on the sheet.
I want to know if the following idea has any merit: what if I take every CF rule/formula and make them into IF formulas that return "x" if true in unused columns in my sheet, and then change every CF rule/formula to a simpler IF([cell-reference]="x").
For example, here's one of my current CF rules that applies to range $BY:$BY
What if I instead put this formula into cell JA1:
And then I simply changed the Conditional Formatting rule (that applies to $BY:$BY) to:
Would that have the effect of reducing the calculation time required by the always-volatile CF? I.e. would I essentially only be requiring the CF formula to check for a "x" value? Or would all of cell JA1's precedent cells also need to be recalculated by the CF function?
Hope that made sense.
I want to know if the following idea has any merit: what if I take every CF rule/formula and make them into IF formulas that return "x" if true in unused columns in my sheet, and then change every CF rule/formula to a simpler IF([cell-reference]="x").
For example, here's one of my current CF rules that applies to range $BY:$BY
Code:
=AND(ISNUMBER(BY1),OR(ISNUMBER($GM1),ISNUMBER($GN1)),OR(BY1>$GN1,BY1<$GM1))
What if I instead put this formula into cell JA1:
Code:
=IF(AND(ISNUMBER(BY1),OR(ISNUMBER($GM1),ISNUMBER($GN1)),OR(BY1>$GN1,BY1<$GM1)),[B]"x"[/B],"")
And then I simply changed the Conditional Formatting rule (that applies to $BY:$BY) to:
Code:
=(JA1="x")
Would that have the effect of reducing the calculation time required by the always-volatile CF? I.e. would I essentially only be requiring the CF formula to check for a "x" value? Or would all of cell JA1's precedent cells also need to be recalculated by the CF function?
Hope that made sense.