
Generisk formel
=INDEX(FILTER(data,data""),SEQUENCE(n,1,1,1))
Sammendrag
For å FILTERE og trekke ut de første eller siste n-verdiene (dvs. de første 3 verdiene, de første 5 verdiene osv.), Kan du bruke FILTER-funksjonen sammen med INDEKS og SEKVENS. I eksemplet vist er formelen i D5:
=INDEX(FILTER(data,data""),SEQUENCE(3,1,1,1))
der data er det navngitte området B5: B15.
Forklaring
Når vi arbeider fra innsiden og ut, bruker vi SEKVENS-funksjonen til å konstruere en radnummerverdi for INDEX slik:
SEQUENCE(3,1,1,1)
Vi ber SEQUENCE for en matrise på 3 rader x 1 kolonne, som starter ved 1, med trinnverdien 1. Resultatet er en matrise som dette:
(1;2;3)
som returneres direkte til INDEX-funksjonen som argumentet radnummer:
=INDEX(FILTER(data,data""),(1;2;3))
Å konstruere array for INDEX, bruker vi FILTER funksjon for å hente en liste over ikke-tomme oppføringer fra de navngitte utvalg data (B5: B15) som dette:
FILTER(data,data"")
Arrayargumentet er data, og inkluderingsargumentet er uttrykket data "". Dette kan oversettes bokstavelig som "returverdier fra de navngitte utvalg data hvor verdier i data ikke er tomme". Resultatet er en matrise med ni verdier som dette:
("Atlanta";"Chicago";"Dallas";"Denver";"Los Angeles";"Miami";"New York";"Seattle";"Minneapolis")
Merknadsverdier knyttet til de to tomme cellene er fjernet. Denne matrisen returneres til INDEX-funksjonen som dens arrayargument.
Til slutt returnerer INDEX 1., 2. og 3. verdier fra matrisen som returneres av FILTER:
("Atlanta";"Chicago";"Dallas")
Siste n verdier
For å få de siste n-verdiene med FILTER, bruker du den samme formelstrukturen, med inngangene til SEKVENS modifisert for å konstruere en "siste n" matrise med radnumre. For eksempel, for å få de siste 3 ikke-tomme verdiene i eksemplet som vises, kan du bruke en formel som denne:
=INDEX(FILTER(data,data""),SORT(SEQUENCE(3,1,SUM(--(data"")),-1)))
Hoved Trikset her er å telle ikke-tomme oppføringer i de navngitte utvalg data som dette:
SUM(--(data""))
Vi bruker en dobbel-negativ for å tvinge de SANNE FALSKE verdiene til 1s og 0s, og bruk deretter SUM-funksjonen for å få tellingen. Resultatet returneres som startargumentet i SEQUENCE. Vi leverer -1 for trinn for å gå bakover fra start.
Vi vikler også SORT-funksjonen rundt SEKVENS, slik at den returnerte matrisen er (7; 8; 9) og ikke (9; 8; 7). Dette sikrer at verdiene returneres i samme rekkefølge som de vises i kildedataene.