Perhaps a dumb Q, but I'm trying to troubleshoot an annoying performance lag, and have a few thousands IF formulas in the standard syntax:
Alternatively, sometimes I'll use the IFERROR function:
My question is about how Excel goes about evaluating these formulas, and whether it does so sequentially...and if so, whether changing the order of the variables would significantly speed my sheet up. For example:
Hope that made sense. BTW, though I used an IFERROR for my example above, this also has consequences for how I order the if_true and if_false variables in standard IF formulas...TLDR: is it best practice to always structure them so that more complex formulas nested within them only get evaluated/calculated if they need to be? Or is this moot / do the formulas get calculated regardless?
=IF(logical_test,[value_if_true],[value_if_false]
Alternatively, sometimes I'll use the IFERROR function:
=IFERROR(value,value_if_error)
My question is about how Excel goes about evaluating these formulas, and whether it does so sequentially...and if so, whether changing the order of the variables would significantly speed my sheet up. For example:
- Consider a long/complicated formula that depends on the value of cell A1 which can be either a numerical value, or the letter "x" >> when A1 is a number, the formula returns a value, but when it's "x", it returns an "#N/A" error
- If I use: =IFERROR([long/complicated_formula],""), Excel essentially has to evaluate the entire [long/complicated_formula] before deciding whether to return its result or a null "" value, right? But what if instead I used:
- =IF(A1="x","",[long/complicated-formula]) In this instance, Excel's first checking whether A1="x", and if it is, then it doesn't even need to bother evaluating the long/complicated formula, right? This formulation would seem to cut down on calculation time dramatically, but does Excel evaluate IF formula variables in the order they appear and just cut off any calculation once it 'knows' which true/false variable to return? Or will my 'long/complicated' formula need to be evaluated regardless?
Hope that made sense. BTW, though I used an IFERROR for my example above, this also has consequences for how I order the if_true and if_false variables in standard IF formulas...TLDR: is it best practice to always structure them so that more complex formulas nested within them only get evaluated/calculated if they need to be? Or is this moot / do the formulas get calculated regardless?
Last edited: