Vzorec programu Excel: Extrahujte viac zhôd do samostatných stĺpcov -

Zhrnutie

Ak chcete extrahovať viac zhôd do samostatných buniek, v samostatných stĺpcoch môžete použiť maticový vzorec založený na INDEXE a MALOM. V zobrazenom príklade je vzorec v F5:

(=IFERROR(INDEX(names,SMALL(IF(groups=$E5,ROW(names)-MIN(ROW(names))+1),COLUMNS($E$5:E5))),""))

Toto je vzorec poľa a musí sa zadať pomocou kombinácie klávesov Control + Shift + Enter.

Po zadaní vzorca do prvej bunky potiahnite ho smerom dole a naprieč a vyplňte ďalšie bunky.

Vysvetlenie

Poznámka: tento vzorec používa dva pomenované rozsahy: „names“ odkazuje na C5: C11 a „groups“ označuje B5: B11. Tieto názvy sú definované aj na snímke obrazovky vyššie.

Podstata tohto vzorca je nasledovná: pomocou funkcie MALÉ vygenerujeme číslo riadku zodpovedajúce „n-tej zhode“. Keď už máme číslo riadku, jednoducho ho odovzdáme do funkčnej funkcie INDEX, ktorá vráti hodnotu v danom riadku.

Trik spočíva v tom, že SMALL pracuje s poľom, ktoré je v tomto bite dynamicky konštruované IF:

IF(groups=$E5,ROW(names)-MIN(ROW(names))+1)

Tento úryvok testuje pomenované rozsahové skupiny pre hodnotu v E5. Ak sa nájde, vráti číslo riadku z poľa relatívnych čísel riadkov vytvorených pomocou:

ROW(names)-MIN(ROW(names))+1

Konečným výsledkom je pole, ktoré obsahuje čísla, kde existuje zhoda, a FALSE, ak nie:

(1; FALSE; FALSE; FALSE; FALSE; 6; FALSE)

Toto pole ide do MALÉHO. Hodnota k pre MALÉ (n-té) pochádza z rozširujúceho sa rozsahu:

COLUMNS($E$5:E5)

Pri kopírovaní cez tabuľku výsledkov sa rozsah rozšíri, čo spôsobí prírastok k (n-tej). Funkcia SMALL vráti každé zodpovedajúce číslo riadku, ktoré sa dodáva funkcii INDEX ako row_num, s pomenovaným rozsahom „names“ ako poľom.

Zaobchádzanie s chybami

Keď COLUMNS vráti hodnotu pre k, ktorá neexistuje, SMALL hodí chybu # ČÍSLO. Stáva sa to po odohraní všetkých zápasov. Aby sme chybu potlačili, zabalíme vzorec do funkcie IFERROR, aby sme chyby zachytili a vrátili prázdny reťazec („“).

Zaujímavé články...