
Formula generică
=SUM(INDEX(FILTER(range,logic),SEQUENCE(n,1,1,1)))
rezumat
Pentru a însuma primele n valori potrivite într-un set de date, puteți utiliza o formulă bazată pe funcțiile FILTER și SEQUENCE. În exemplul prezentat, formula din celula G5, copiată, este:
=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,1,1)))
unde numele (B5: B16) și scorul (C5: C16) sunt denumite intervale.
Explicaţie
Funcția FILTER, nouă în Excel 365, poate ajuta la simplificarea unor probleme de formulă dificile.
În acest exemplu, scopul este de a însuma primele 3 scoruri atât pentru Jake, cât și pentru Hailey, pe baza ordinii în care apar în tabel. Există 12 scoruri în total, iar Jake și Hailey au câte 6 scoruri.
Lucrând din interior spre exterior, prima sarcină este generarea unei liste de scoruri pentru fiecare nume. Acest lucru se face cu funcția FILTER:
FILTER(score,name=F5)
Cu „Jake” în celula F5, rezultatul este o matrice cu toate scorurile lui Jake astfel:
(6;5;7;7;6;8)
Această matrice este returnată funcției INDEX ca argument de matrice:
INDEX((6;5;7;7;6;8),SEQUENCE(3,1,1,1))
Funcția SEQUENCE este utilizată pentru a genera valoarea pentru numărul rândului și returnează o matrice cu 3 numere,
SEQUENCE(3,1,1,1) // returns (1;2;3)
În acest moment, putem scrie porțiunea INDEX a formulei astfel:
INDEX((6;5;7;7;6;8),(1;2;3))
INDEX returnează valorile asociate primelor 3 rânduri din matrice funcției SUM:
=SUM((6;5;7)) // returns 18
iar SUM returnează suma acestor valori ca rezultat final în G5. Când formula este copiată în celula G6, rezultatul este suma primelor 3 scoruri ale lui Hailey.
Sumați ultimele n valori potrivite
Pentru a rezuma ultimele n valori potrivite, puteți adapta formula astfel:
=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,SUM(--(name=F5)),-1)))
Această formulă este explicată mai detaliat aici.