Formula Excel: FILTRU pe prima sau ultima n valoare -

Cuprins

Formula generică

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

rezumat

Pentru a FILTRA și a extrage prima sau ultima n valori (adică primele 3 valori, primele 5 valori etc.), puteți utiliza funcția FILTER împreună cu INDEX și SEQUENCE. În exemplul prezentat, formula din D5 este:

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

unde datele sunt intervalul numit B5: B15.

Explicaţie

Lucrând din interior spre exterior, folosim funcția SEQUENCE pentru a construi o valoare a numărului de rând pentru INDEX astfel:

SEQUENCE(3,1,1,1)

Solicităm SECVENȚIE o matrice de 3 rânduri x 1 coloană, începând de la 1, cu o valoare a pasului 1. Rezultatul este o matrice ca aceasta:

(1;2;3)

care este returnat direct la funcția INDEX ca argument row_num:

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

Pentru a construi matricea pentru INDEX, folosim funcția FILTER pentru a prelua o listă de intrări necompletate din datele de interval denumite (B5: B15) astfel:

FILTER(data,data"")

Argumentul matrice este de date, iar argumentul include este expresia date "". Acest lucru poate fi tradus literal ca „returnează valorile din datele din intervalul numit, unde valorile din date nu sunt goale”. Rezultatul este un tablou cu 9 valori ca aceasta:

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

Valorile de notificare asociate celor două celule goale au fost eliminate. Această matrice este returnată funcției INDEX ca argument al matricei sale.

În cele din urmă, INDEX returnează valorile 1, 2 și 3 din matricea returnată de FILTER:

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

Ultimele n valori

Pentru a obține ultimele n valori cu FILTRU, utilizați aceeași structură de formulă, cu intrările în SECVENȚĂ modificate pentru a construi o „ultimă n” matrice de numere de rând. De exemplu, pentru a obține ultimele 3 valori necompletate în exemplul prezentat, puteți utiliza o formulă de genul acesta:

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

Principalul truc aici este de a număra intrările care nu sunt necompletate în datele intervalului denumit astfel:

SUM(--(data""))

Folosim un dublu negativ pentru a forța valorile TRUE FALSE la 1s și 0s, apoi folosim funcția SUM pentru a obține numărul. Rezultatul este returnat ca argument de start în secvența. Furnizăm -1 pentru un pas înapoi de la început.

De asemenea, înfășurăm funcția SORT în jurul secvenței, astfel încât matricea returnată este (7; 8; 9) și nu (9; 8; 7). Acest lucru asigură că valorile sunt returnate în aceeași ordine în care apar în datele sursă.

Articole interesante...