Екцел формула: Издвојити више подударања у засебне редове -

Резиме

Да бисте издвојили више подударања у одвојене ћелије, у одвојеним редовима, можете користити формулу низа засновану на ИНДЕКС и СМАЛЛ. У приказаном примеру, формула у Е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)

Када се копира низ табелу резултата, опсег се шири, што доводи до повећања к (н-те). Функција СМАЛЛ враћа сваки одговарајући број реда, који се функцији ИНДЕКС испоручује као број_реда, са именованим опсегом "имена" као низом.

Руковање грешкама

Када РОВС врати вредност за к која не постоји, СМАЛЛ баца грешку #НУМ. То се дешава након што су се одиграле све утакмице. Да бисмо сузбили грешку, користимо ИФЕРРОР да ухватимо грешку и вратимо празан низ ("").

Занимљиви Чланци...