Zakładam, że zrzut ekranu jest twoją tabelą danych, a dwie listy rozwijane do określania kryteriów znajdują się gdzie indziej.
Ta formuła, wypełniona z B17 w poniższym filmie, zawiera listę systemów spełniających kryteria:
=IFERROR(INDEX(A$2:A$13,AGGREGATE(15,6,ROW(A$1:A$12)/(INDEX(B$2:H$13,,MATCH(C$18,B$1:H$1))=C$17),ROW()-16)),"")
Jest to formuła tablicowa i należy ją wprowadzić za pomocą CTRLShiftEnter.

Mam nadzieję, że to pomoże i powodzenia.
______________________________________________________________________________
Jak to działa: Wewnętrzna INDEX()zwraca całą kolumnę tabeli danych wybraną z menu rozwijanego „Doc” w C$18. Następnie równość =C$17zwraca tablicę TRUE/FALSEwartości z TRUEkażdą pozycją, w której komórka zawiera wybór w C$17menu rozwijanym.
ROW(A$1:A$12)daje tablicę kolejnych numerów {1;2;3;...12}, która jest podzielona przez TRUE/FALSEtablicę.
W operacji arytmetycznych z udziałem wartości logicznych TRUEi FALSEprzekształca się do 1 i 0. Tak więc podział daje tablicę #DIV/0!błędów dla każdego FALSE, przeplataną numerami wierszy każdego wystąpienia wartości z listy rozwijanej.
Ta tablica jest dostarczana do AGGREGATE()funkcji, która robi to samo, co SMALL()by robiła (funkcja = 15), tyle że ma opcję ignorowania błędów (opcja = 6). AGGREGATE()Ignoruje więc #DIV/0!błędy i podaje tablicę zawierającą tylko numery wierszy wartości z listy rozwijanej C $ 17, gdy funkcja jest wypełniona. Ta tablica jest używana jako row-num„s” w innej INDEX(), która zwraca listę systemów odpowiadających tym numerom wierszy.
Na koniec IFERROR()wstawia spację za każdym razem, gdy pojawia INDEX()się błąd, ponieważ jest ona wypełniana dalej niż liczba wartości na liście liczba_wierszy.
Umieszczam tę formułę w wierszu 17, więc ostatni ROW()-16zaczyna listę od 1. wiersza_licza w tablicy. Więc powinieneś zmienić ostatnie „16” na jeden mniej niż numer wiersza, w którym masz formułę.