![](https://cdn.wiki-base.com/1591239/excel_formula_filter_on_first_or_last_n_values__2.png.webp)
Yleinen kaava
=INDEX(FILTER(data,data""),SEQUENCE(n,1,1,1))
Yhteenveto
Suodattaa ja purkaa ensimmäiset tai viimeiset n arvoa (eli ensimmäiset 3 arvoa, ensimmäiset 5 arvoa jne.), Voit käyttää SUODATIN-toimintoa yhdessä HAKEMISTON ja Sekvenssin kanssa. Esitetyssä esimerkissä kaava kohdassa D5 on:
=INDEX(FILTER(data,data""),SEQUENCE(3,1,1,1))
missä data on nimetty alue B5: B15.
Selitys
Työskentelemällä sisältä ulospäin, käytämme SEQUENCE-funktiota rakentamaan rivinumeron INDEX: lle seuraavasti:
SEQUENCE(3,1,1,1)
Pyydämme SEQUENCE-taulukkoa, jossa on 3 riviä x 1 sarake, alkaen 1: stä, askelarvolla 1. Tulos on tällainen taulukko:
(1;2;3)
joka palautetaan suoraan INDEX-funktioon row_num-argumenttina:
=INDEX(FILTER(data,data""),(1;2;3))
Rakentaa array INDEX, käytämme FILTER toiminto hakea luettelo ei ole tyhjä merkintöjä nimetty alue data (B5: B15) näin:
FILTER(data,data"")
Matriisiargumentti on data, ja sisällytysargumentti on lauseketieto "". Tämä voidaan kääntää kirjaimellisesti "paluu arvot nimetty alue data , jossa arvot tiedot eivät ole tyhjiä". Tuloksena on taulukko, jolla on 9 tällaista arvoa:
("Atlanta";"Chicago";"Dallas";"Denver";"Los Angeles";"Miami";"New York";"Seattle";"Minneapolis")
Kahteen tyhjään soluun liittyvät huomautusarvot on poistettu. Tämä taulukko palautetaan INDEX-funktiolle sen matriisiargumenttina.
Lopuksi INDEX palauttaa suodattimen palauttaman taulukon ensimmäisen, toisen ja kolmannen arvon:
("Atlanta";"Chicago";"Dallas")
Viimeiset n arvoa
Saadaksesi viimeiset n arvoa FILTER-suodattimella, käytät samaa kaava-rakennetta, jolloin SEQUENCE-tuloja on muokattu muodostamaan "viimeinen n" rivinumeroiden taulukko. Voit esimerkiksi saada 3 viimeistä ei-tyhjää arvoa näytetyssä esimerkissä käyttämällä seuraavaa kaavaa:
=INDEX(FILTER(data,data""),SORT(SEQUENCE(3,1,SUM(--(data"")),-1)))
Tärkein temppu tässä on laskea ei-tyhjät merkinnät nimettyjen alueiden tiedoissa seuraavasti:
SUM(--(data""))
Pakotamme TOSI EPÄTOSI -arvot arvoon 1s ja 0s kaksoisnegatiivin avulla, ja sitten laskumäärä saadaan käyttämällä SUM-funktiota. Tulos palautetaan aloitusargumenttina sekvenssin sisällä. Toimitamme -1 askelta taaksepäin alusta alkaen.
Kääritään SORT-toiminto myös SEQUENCE: n ympärille, joten palautettu taulukko on (7; 8; 9) eikä (9; 8; 7). Tämä varmistaa, että arvot palautetaan samassa järjestyksessä kuin ne näkyvät lähdetiedoissa.