Excel formula: FILTER na prvoj ili posljednjoj n vrijednosti -

Sadržaj

Generička formula

=INDEX(FILTER(data,data""),SEQUENCE(n,1,1,1))

Sažetak

Za FILTRIRANJE i izdvajanje prve ili posljednje n vrijednosti (tj. Prve 3 vrijednosti, prvih 5 vrijednosti itd.), Možete koristiti funkciju FILTER zajedno s INDEX i SEQUENCE. U prikazanom primjeru formula u D5 je:

=INDEX(FILTER(data,data""),SEQUENCE(3,1,1,1))

gdje su podaci imenovani raspon B5: B15.

Obrazloženje

Radeći iznutra prema van, koristimo funkciju SEQUENCE kako bismo konstruirali vrijednost broja retka za INDEX ovako:

SEQUENCE(3,1,1,1)

Tražimo SEQUENCE za niz od 3 retka x 1 stupac, počevši od 1, s vrijednošću koraka 1. Rezultat je niz poput ovog:

(1;2;3)

koji se vraća izravno funkciji INDEX kao argument row_num:

=INDEX(FILTER(data,data""),(1;2;3))

Da bismo konstruirali niz za INDEX, koristimo funkciju FILTER za dohvaćanje popisa nepraznih unosa iz imenovanih podataka raspona (B5: B15) ovako:

FILTER(data,data"")

Argument niza su podaci, a argument include izraz podataka "". To se može doslovno prevesti kao "vraćanje vrijednosti iz imenovanih podataka raspona gdje vrijednosti u podacima nisu prazne". Rezultat je niz s 9 vrijednosti poput ove:

("Atlanta";"Chicago";"Dallas";"Denver";"Los Angeles";"Miami";"New York";"Seattle";"Minneapolis")

Vrijednosti obavijesti povezane s dvije prazne ćelije uklonjene su. Taj se niz vraća funkciji INDEX kao njegov argument niza.

Napokon, INDEX vraća 1., 2. i 3. vrijednost iz polja koje je vratio FILTER:

("Atlanta";"Chicago";"Dallas")

Posljednjih n vrijednosti

Da biste dobili posljednjih n vrijednosti s FILTER, koristite istu strukturu formule, s ulazima u SEQUENCE modificiranim za izgradnju "posljednjih n" niza brojeva redaka. Na primjer, da biste dobili posljednje 3 prazne vrijednosti u prikazanom primjeru, možete upotrijebiti formulu poput ove:

=INDEX(FILTER(data,data""),SORT(SEQUENCE(3,1,SUM(--(data"")),-1)))

Glavni trik ovdje je brojanje nepraznih unosa u imenovanim podacima raspona poput ovog:

SUM(--(data""))

Dvostrukim negativom forsiramo vrijednosti TRUE FALSE na 1s i 0s, a zatim pomoću funkcije SUM dobivamo brojanje. Rezultat se vraća kao početni argument unutar SEQUENCE. Dobavljamo -1 za korak za korak unatrag od početka.

Funkciju SORT također omotamo oko SEQUENCE tako da je vraćeni niz (7; 8; 9), a ne (9; 8; 7). To osigurava da se vrijednosti vraćaju istim redoslijedom u kojem se pojavljuju u izvornim podacima.

Zanimljivi članci...