
rezumat
Pentru a extrage mai multe potriviri în celule separate, în rânduri separate, puteți utiliza o formulă matrice bazată pe INDEX și SMALL. În exemplul prezentat, formula din E5 este:
(=IFERROR(INDEX(names,SMALL(IF(groups=E$4,ROW(names)-MIN(ROW(names))+1),ROWS($E$5:E5))),""))
Aceasta este o formulă matrice și trebuie introdusă cu Control + Shift + Enter.
După ce introduceți formula în prima celulă, trageți-o în jos și peste pentru a completa celelalte celule.
Explicaţie
Notă: această formulă utilizează două intervale denumite: „nume” se referă la C4: C11, iar „grupuri” se referă la B4: B11. Aceste nume sunt definite și în captura de ecran de mai sus.
Esența acestei formule este următoarea: folosim funcția MICI pentru a obține un număr de rând care corespunde unui „al n-lea meci”. Odată ce avem numărul rândului, îl trecem pur și simplu în funcția de funcție INDEX, care returnează valoarea la acel rând.
Trucul este că SMALL funcționează cu o matrice care este construită dinamic de IF în acest bit:
IF(groups=E$4,ROW(names)-MIN(ROW(names))+1)
Acest fragment testează intervalul numit „grupuri” pentru valoarea din E4. Dacă este găsit, returnează un număr de rând „normalizat” dintr-o matrice de numere de rând create cu această parte a formulei:
ROW(names)-MIN(ROW(names))+1
Rezultatul este un tablou care conține numere de rând în cazul în care există o potrivire, și FALSE în cazul în care nu. Matricea arată cam așa:
(1; FALS; FALS; FALS; FALS; 6; FALS)
Această matrice intră în SMALL. Valoarea k pentru SMALL (nth) provine dintr-un interval de expansiune:
ROWS($E$5:E5)
Când este copiat tabelul de rezultate, intervalul se extinde, determinând creșterea lui k (nth). Funcția SMALL returnează fiecare număr de rând care se potrivește, care este furnizat funcției INDEX ca rând_num, cu gama numită „nume” ca matrice.
Gestionarea erorilor
Când ROWS returnează o valoare pentru k care nu există, SMALL aruncă o eroare #NUM. Acest lucru se întâmplă după ce au avut loc toate meciurile. Pentru a suprima eroarea, folosim IFERROR pentru a prinde eroarea și a returna un șir gol ("").