Hi,
First of all, you absolutely should not use entire column references within an array formula. I appreciate that your range is dynamic and subject to change, and that, by referencing entire columns, you are 'covering your bases'. However, array formulas calculate over all cells within the ranges passed to them, whether beyond the last-used cells in those ranges or not. As such, an array formula which references an entire column is being forced to calculate more than a million more cells than one which references, say, 6000 rows. And that's for just one instance of that formula.
Either use dynamic ranges or reduce the end row being referenced to a suitably low, though sufficient, value.
In J3:
=IF(C3<>C2,TEXTJOIN(", ",1,IF(FREQUENCY(IF(ISNUMBER(SEARCH(E3,E$3:E$6000)),MATCH(I$3:I$6000,I$3:I$6000,0)),ROW(I$3:I$6000)-MIN(ROW(I$3:I$6000))+1),I$3:I$6000,"")),"")
Regards
Bookmarks