Is there a dynamic array alternative to this formula?

valmir

Board Regular
Joined
Feb 10, 2021
Messages
239
Office Version
  1. 365
Platform
  1. Windows
Hi Everyone!
I have this formula and the problem with it is that since there are so many rows to fill, it takes long to calculate threads and so on, so I wonder if there is a dynamic array alternative for it that does not require so many calculations:
Excel Formula:
=IFERROR(TEXTJOIN(", "; TRUE; FILTER(Seasons!$O:$O; Seasons!B:B=Stats!B2));"")
For example, I have this formula
Excel Formula:
=SORT(UNIQUE(FILTER(Seasons!B:B;NOT(ISNUMBER(VALUE(SUBSTITUTE(Seasons!B:B;"-";"")))))))
that works perfectly as an array. Thanks
 

Excel Facts

How can you automate Excel?
Press Alt+F11 from Windows Excel to open the Visual Basic for Applications (VBA) editor.
In case there is no alternative, please let me know. I'll mark it as solved too!
 
Upvote 0
You are already using dynamic arrays.
The reason it's slow is that you are using whole column references. If you change the formula to look at a smaller range, it will improve the performance.
 
Upvote 0
Solution
You are already using dynamic arrays.
The reason it's slow is that you are using whole column references. If you change the formula to look at a smaller range, it will improve the performance.
Thanks for the explanation Fluff. Maybe I didn't make myself clear. Some formulas automatically expand to cover the entire range, I mean, you don't have to use as many formulas as rows to be filled. That's the type of formula that I am talking about
 
Upvote 0
Fraid I do not understand what you are saying.
If you mean a Spill range, then Textjoin will not spill.
 
Upvote 0
Yeah! spill range. That's it! Ok got it! Thanks for the explanation!
 
Upvote 0
You're welcome & thanks for the feedback.
 
Upvote 0
Hi Fluff! I would like to share this information with you, maybe I can learn something else from you that really is puzzling me: I got this formula from someone:
Excel Formula:
=IF(COUNTIF(Seasons!$B$1:$B$10000;B2)=0;"";IF(COUNTIF(Seasons!$B$1:$B$10000;B2)=1;INDEX(Seasons!$O$1:$O$10000;MATCH(B2;Seasons!$B$1:$B$10000;0));
INDEX(Seasons!$O$1:$O$10000;MAX(IF(Seasons!$B$1:$B$10000=B2;ROW(Seasons!$B$1:$B$10000))))&" - "&INDEX(Seasons!$O$1:$O$10000;MIN(IF(Seasons!$B$1:$B$10000=B2;ROW(Seasons!$B$1:$B$10000))))))
Not only it solved my problem but most importantly, it is so "light", if I'm making myself understood. By "light" I mean, I don't see any "calculations" going on anymore whenever I work with the file and the file opens instantly just as it did before I was using the initial formulas. So my question is. Why is it that the previous formula was so "heavy" making the file so slow to open whereas this one has virtually no effect on the file in terms of calculations?
 
Upvote 0
I already explained why your formula was slow in post#3 ;)
 
Upvote 0

Forum statistics

Threads
1,215,634
Messages
6,125,934
Members
449,275
Latest member
jacob_mcbride

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top