Excel-formel: FILTER på første eller siste n-verdi -

Innholdsfortegnelse

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.

Interessante artikler...