Excel képlet: Több egyezés kivonása külön oszlopokba -

Összegzés

Ha több egyezést szeretne külön cellákba külön oszlopokba gyűjteni, használhatja az INDEX és a SMALL tömbképletet. A bemutatott példában az F5 képlete a következő:

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

Ez egy tömbképlet, amelyet a Control + Shift + Enter billentyűkombinációval kell megadni.

Miután megadta a képletet az első cellában, húzza lefelé és keresztbe a többi cellának kitöltéséhez.

Magyarázat

Megjegyzés: ez a képlet két megnevezett tartományt használ: a "nevek" a C5: C11-re, a "csoportok" pedig a B5: B11-re utal. Ezeket a neveket a fenti képernyőkép is meghatározza.

Ennek a képletnek a lényege a következő: a SMALL funkciót használjuk az "n-edik egyezésnek" megfelelő sorszám előállításához. Miután megvan a sorszám, egyszerűen átadjuk az INDEX függvény függvénynek, amely visszaadja az adott sor értékét.

A trükk az, hogy a SMALL egy tömbmel dolgozik, amelyet az IF dinamikusan konstruál ebben a bitben:

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

Ez a kódrészlet a nevezett tartomány "csoportokat" teszteli az E5 értékére. Ha megtalálható, akkor egy sorszámot ad vissza a relatív sorszámok tömbjéből, amelyet a következőkkel hoztak létre:

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

A végeredmény egy tömb, amely számokat tartalmaz, ahol van egyezés, és FALSE, ha nem:

(1; HAMIS; HAMIS; HAMIS; HAMIS; 6; HAMIS)

Ez a tömb KIS-be megy. A kicsi (n) k értéke táguló tartományból származik:

COLUMNS($E$5:E5)

Ha az eredménytáblára másolja, a tartomány kibővül, ami k (n-edik) növekedését okozza. A SMALL függvény minden egyes egyező sorszámot visszaad, amelyet az INDEX függvényhez sor_számként szállítunk, tömbként a megnevezett tartományt "names".

Kezelési hibák

Amikor a COLUMNS visszaadja a k értékét, amely nem létezik, a SMALL #NUM hibát dob. Ez akkor következik be, amikor minden mérkőzés megtörtént. A hiba kiküszöbölése érdekében a képletet beillesztjük az IFERROR függvénybe, hogy elkapjuk a hibákat és egy üres karakterláncot adjunk vissza ("").

érdekes cikkek...