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