Forum Discussion

mwwoodru's avatar
mwwoodru
Copper Contributor
May 10, 2021
Solved

Excessive time preforming calculations

I am indicating whether an item is found in the filtered list of items on another worksheet within the same file.  It displays "1" if it is found and a "0" if not.  Below is the formula.  Is there an...
  • SergeiBaklan's avatar
    SergeiBaklan
    May 19, 2021

    mwwoodru 

    Detlef is right, such projects better to do with data model using Power Pivot and Power Query. But that will require to rebuild everything practically from scratch.

     

    With current workbook I'd at least to convert ranges to structured tables. That itself allows to optimize formulas and improve performance. Another variant is dynamic ranges, but that's harder in maintenance.

     

    Some formulas could be optimized independently of above. For example, instead of calculating max of the range, keep reference on sequential numbers range and use MAXIFS to find position of max, it could be used something like =XMATCH(bigNumber, range, -1).

     

    As for filtered rows, you may add helper column to first table as

    =AGGREGATE(3,5,[@STOCK])

    and in next table use helper columns as

    =XLOOKUP([@STOCK],tblStratCalcsNYSE[STOCK],tblStratCalcsNYSE[Helper])

Resources