Exceli valem: eraldage mitu vastet eraldi ridadesse -

Kokkuvõte

Mitme vaste eraldamiseks lahtritesse saate eraldi ridades kasutada massiivivalemit, mis põhineb INDEXil ja VÄIKEL. Näidatud näites on valem E5-s järgmine:

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

See on massiivivalem ja see tuleb sisestada klahvidega Control + Tõst + Enter.

Pärast valemi sisestamist esimesse lahtrisse lohistage see teiste lahtrite täitmiseks alla ja alla.

Selgitus

Märkus: selles valemis kasutatakse kahte nimega vahemikku: "nimed" tähistab C4: C11 ja "rühmad" viitab B4: B11. Need nimed on määratletud ka ülaltoodud ekraanipildis.

Selle valemi põhisisu on järgmine: kasutame funktsiooni VÄIKE, et saada rea ​​number, mis vastab "n-nda vastega". Kui meil on rea number, edastame selle lihtsalt funktsiooni INDEX, mis tagastab selle rea väärtuse.

Trikk on selles, et SMALL töötab massiiviga, mille IF on selles bitis dünaamiliselt konstrueerinud:

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

See koodilõik testib nimega vahemiku "rühmad" väärtust E4-s. Kui see on leitud, tagastab see valemi selle osaga loodud reaarvude massiivi "normaliseeritud" rea numbri:

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

Tulemuseks on massiiv, mis sisaldab rea numbreid, kus on vaste, ja FALSE, kui mitte. Massiiv näeb välja umbes selline:

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

See massiiv läheb VÄIKSEKS. Väärtuse k väärtus n (n) tuleneb laienevast vahemikust:

ROWS($E$5:E5)

Tulemustabelist alla kopeerides laieneb vahemik, põhjustades k (n-nda) kasvu. Funktsioon SMALL tagastab iga sobiva rea ​​numbri, mis tarnitakse funktsioonile INDEX kui rida_number, massiivina nimega vahemik "nimed".

Vigade käitlemine

Kui ROWS tagastab k-le väärtuse, mida pole olemas, viskab VÄIKE vea #NUM. See juhtub pärast kõigi matšide toimumist. Vea summutamiseks kasutame viga tabamiseks IFERROR-i ja tagastame tühja stringi ("").

Huvitavad Artiklid...