
Sažetak
Da biste izdvojili više podudaranja u zasebne ćelije, u zasebnim redovima, možete koristiti formulu niza koja se temelji na INDEX i SMALL. U prikazanom primjeru formula u E5 je:
(=IFERROR(INDEX(names,SMALL(IF(groups=E$4,ROW(names)-MIN(ROW(names))+1),ROWS($E$5:E5))),""))
Ovo je formula niza i mora se unijeti s Control + Shift + Enter.
Nakon što unesete formulu u prvu ćeliju, povucite je prema dolje i popunite kako biste popunili ostale stanice.
Obrazloženje
Napomena: ova formula koristi dva imenovana raspona: "imena" se odnose na C4: C11, a "grupe" odnose se na B4: B11. Ta su imena definirana i na snimci zaslona iznad.
Suština ove formule je sljedeća: koristimo funkciju SMALL da bismo dobili broj retka koji odgovara "n-tom podudaranju". Jednom kada imamo broj retka, jednostavno ga prosljeđujemo u funkciju funkcije INDEX, koja vraća vrijednost u tom retku.
Trik je u tome što SMALL radi s nizom koji dinamički konstruira IF u ovom bitu:
IF(groups=E$4,ROW(names)-MIN(ROW(names))+1)
Ovaj isječak testira imenovani raspon "grupa" za vrijednost u E4. Ako se pronađe, vraća "normalizirani" broj retka iz niza brojeva redaka stvorenih ovim dijelom formule:
ROW(names)-MIN(ROW(names))+1
Rezultat je niz koji sadrži brojeve redaka tamo gdje postoji podudaranje, a FALSE tamo gdje ne. Niz izgleda otprilike ovako:
(1; NETOČNO; NETOČNO; NETOČNO; NETOČNO; 6; NETOČNO)
Ovaj niz ide u MALO. Vrijednost k za SMALL (nth) dolazi iz širećeg raspona:
ROWS($E$5:E5)
Kada se kopira niz tablicu rezultata, raspon se širi, što dovodi do povećanja k (nth). Funkcija SMALL vraća svaki odgovarajući broj retka, koji se funkciji INDEX isporučuje kao number_num, s imenovanim rasponom "imena" kao nizom.
Pogreške u rukovanju
Kada ROWS vrati vrijednost za k koja ne postoji, SMALL baca grešku #NUM. To se događa nakon što su se dogodile sve utakmice. Da bismo suzbili pogrešku, koristimo IFERROR za hvatanje pogreške i vraćanje praznog niza ("").