Good evening everyone,
I have a workbook that uses a lot of array formulas (no way around this), and, after adding dynamic array formula worksheet hyperlinks to the mix, the workbook slowed down enough for me to notice the delay in calculation on my Mac Mini (quad-core i7, SSD, and 16Gb RAM). Being that the end user of this workbook uses a much slower computer, I have to speed the formulas up.
Looking at one set of array formulas, I noticed that I had inadvertently used two different array formulas to accomplish the same thing:
Formula #1:
Uses SUMPRODUCT type calculation to find the first cell in "COLUMN_Name" that matches multiple criteria.
Formula #2:
Uses nested IF statements to find the first cell in "COLUMN_Name" that matches multiple criteria.
For reference, each "COLUMN_xxx" named range is a dynamic named range that refers to a different single column of about 1000 rows each. Each dynamic named range uses an INDEX/MATCH formula to make it dynamic, not an INDIRECT or OFFSET formula, so they should be non-volatile.
Which of the two above array formulas is technically faster?
I have a workbook that uses a lot of array formulas (no way around this), and, after adding dynamic array formula worksheet hyperlinks to the mix, the workbook slowed down enough for me to notice the delay in calculation on my Mac Mini (quad-core i7, SSD, and 16Gb RAM). Being that the end user of this workbook uses a much slower computer, I have to speed the formulas up.
Looking at one set of array formulas, I noticed that I had inadvertently used two different array formulas to accomplish the same thing:
Formula #1:
Code:
{=IFERROR(INDEX(COLUMN_Name,SMALL(IF((COLUMN_Position="EMT")*(COLUMN_TeamAssigned=M4)*(RIGHT(COLUMN_BOGStatus,1)="1"),ROW(COLUMN_Position)),1)),"None")}
Uses SUMPRODUCT type calculation to find the first cell in "COLUMN_Name" that matches multiple criteria.
Formula #2:
Code:
{=IFERROR(INDEX(COLUMN_Name,SMALL(IF(COLUMN_Position="EMT",IF(COLUMN_TeamAssigned=M4,IF(RIGHT(COLUMN_BOGStatus,1)="1",ROW(COLUMN_BOGStatus)))),1)),"None")}
Uses nested IF statements to find the first cell in "COLUMN_Name" that matches multiple criteria.
For reference, each "COLUMN_xxx" named range is a dynamic named range that refers to a different single column of about 1000 rows each. Each dynamic named range uses an INDEX/MATCH formula to make it dynamic, not an INDIRECT or OFFSET formula, so they should be non-volatile.
Which of the two above array formulas is technically faster?