My bad, I typed the formula here instead of excel, I think you would have seen a 'too few' error rather than 'too many', I missed the ,"" in iferror.
Formula:
=IF(B5="","",IFERROR(INDEX(Data!$AC:$AC,AGGREGATE(15,6,ROW(Data!$AC$2:$AC$100)/(Data!$B$2:$B$100=$I$2)/(Data!$H$2:$H$100=$A$3),ROWS(B$5:B5))),""))
vba should only be a last resort if the formula proves not practical.
10k rows might not be too bad, the efficiency will depend on the number of unique entries as well.
To maximise efficiency, dynamic named ranges could be useful, or format the data as a structured table.
Bookmarks