
Резиме
Да бисте издвојили више подударања у одвојене ћелије, у одвојеним редовима, можете користити формулу низа засновану на ИНДЕКС и СМАЛЛ. У приказаном примеру, формула у Е5 је:
(=IFERROR(INDEX(names,SMALL(IF(groups=E$4,ROW(names)-MIN(ROW(names))+1),ROWS($E$5:E5))),""))
Ово је формула низа и мора се унети са Цонтрол + Схифт + Ентер.
Након што унесете формулу у прву ћелију, превуците је надоле и попуните да бисте попунили остале ћелије.
Објашњење
Напомена: ова формула користи два именована опсега: „имена“ се односе на Ц4: Ц11, а „групе“ се односе на Б4: Б11. Ова имена су дефинисана и на снимку екрана изнад.
Суштина ове формуле је следећа: користимо функцију СМАЛЛ да бисмо добили број реда који одговара „н-том поклапању“. Једном када добијемо број реда, једноставно га проследимо у функцију функције ИНДЕКС, која враћа вредност у том реду.
Трик је у томе што СМАЛЛ ради са низом који динамички конструише ИФ у овом биту:
IF(groups=E$4,ROW(names)-MIN(ROW(names))+1)
Овај исечак тестира именовани опсег „групе“ за вредност у Е4. Ако се пронађе, враћа „нормализовани“ број реда из низа бројева редова створених овим делом формуле:
ROW(names)-MIN(ROW(names))+1
Резултат је низ који садржи бројеве редова тамо где постоји подударање, а ФАЛСЕ тамо где не. Низ изгледа отприлике овако:
(1; ФАЛСЕ; ФАЛСЕ; ФАЛСЕ; ФАЛСЕ; 6; ФАЛСЕ)
Овај низ прелази у СМАЛЛ. К вредност за СМАЛЛ (нтх) долази из опсега који се шири:
ROWS($E$5:E5)
Када се копира низ табелу резултата, опсег се шири, што доводи до повећања к (н-те). Функција СМАЛЛ враћа сваки одговарајући број реда, који се функцији ИНДЕКС испоручује као број_реда, са именованим опсегом "имена" као низом.
Руковање грешкама
Када РОВС врати вредност за к која не постоји, СМАЛЛ баца грешку #НУМ. То се дешава након што су се одиграле све утакмице. Да бисмо сузбили грешку, користимо ИФЕРРОР да ухватимо грешку и вратимо празан низ ("").