1
My scenario is that I have a "Dashboard" style sheet that looks up data from a large table based on the cell in column B which is always to its left. The cell in column B contains an INDEX, MATCH, IF, array formula to pull unique names from the table where the "Group" is selected. This list is populated down and is populated based on a drop down selection of the different "Group" choices. It can return up to 20 names based on the "Group".
I have 17 cells with formulas to the right which all could return an error if the data is not there. So I have preceded them with an IFERROR()
statement. My question is if I precede them with an IF()
statement would that speed up the calculations because the IF statement would read if True then give blank, if false then calculate the formula.
Logically it would seem so to me, but I wanted to know if any of you feel the same way. Thanks. Perhaps this is more for a meta discussion.
p.s. Here is one of 9 of the most complex formulas I am using.
=IFERROR((SUMIFS(INDIRECT("tblData["&N$7&" Top Box Num]"),INDIRECT("tblData["&$B$7&"]"),$B$16,INDIRECT("tblData[Date]"),">="&$C$5,INDIRECT("tblData[Date]"),"<="&$D$5))/(SUMIFS(INDIRECT("tblData["&N$7&" Den]"),INDIRECT("tblData["&$B$7&"]"),$B$16,INDIRECT("tblData[Date]"),">="&$C$5,INDIRECT("tblData[Date]"),"<="&$D$5)),"")
Is the above formula slower than the formula below when True?
=IF(OR($C$16=0,C16=""),"",(SUMIFS(INDIRECT("tblData["&N$7&" Top Box Num]"),INDIRECT("tblData["&$B$7&"]"),$B$16,INDIRECT("tblData[Date]"),">="&$C$5,INDIRECT("tblData[Date]"),"<="&$D$5))/(SUMIFS(INDIRECT("tblData["&N$7&" Den]"),INDIRECT("tblData["&$B$7&"]"),$B$16,INDIRECT("tblData[Date]"),">="&$C$5,INDIRECT("tblData[Date]"),"<="&$D$5)))
The formulas essentially add up the numerator values and divide that by the denominator values where the conditions are true from a 20,000 row table and return a percent score.
1Thanks pnuts, that
MICROTIME
macro really helped. Turns out I had two array formulas that took 1.5 seconds to run. I figured out how to make them work without being an array and they now take 0.5 seconds. Cut my total calc time down from 2 seconds to 0.5 seconds. Thanks! – Scheballs – 2013-06-11T19:29:42.053