
Generisk formel
=SUM(INDEX(FILTER(range,logic),SEQUENCE(n,1,1,1)))
Sammanfattning
För att summera de första n-matchande värdena i en uppsättning data kan du använda en formel baserad på funktionerna FILTER och SEKVENS. I exemplet som visas är formeln i cell G5, kopierad ned:
=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,1,1)))
där namn (B5: B16) och poäng (C5: C16) heter områden.
Förklaring
FILTER-funktionen, ny i Excel 365, kan hjälpa till att förenkla några knepiga formelproblem.
I detta exempel är målet att summera de tre första poängen för både Jake och Hailey, baserat på ordningen de visas i tabellen. Det finns totalt 12 poäng och Jake och Hailey har 6 poäng vardera.
Arbetar inifrån och ut, den första uppgiften är att skapa en lista över poäng för varje namn. Detta görs med FILTER-funktionen:
FILTER(score,name=F5)
Med "Jake" i cell F5 är resultatet en matris med alla Jakes poäng så här:
(6;5;7;7;6;8)
Denna array returneras till INDEX-funktionen som array-argument:
INDEX((6;5;7;7;6;8),SEQUENCE(3,1,1,1))
SEQUENCE-funktionen används för att generera värdet för radnummer och returnerar en matris med 3 nummer,
SEQUENCE(3,1,1,1) // returns (1;2;3)
Vid denna tidpunkt kan vi skriva INDEX-delen av formeln så här:
INDEX((6;5;7;7;6;8),(1;2;3))
INDEX returnerar värden som är associerade med de tre första raderna i matrisen till SUM-funktionen:
=SUM((6;5;7)) // returns 18
och SUM returnerar summan av dessa värden som slutresultatet i G5. När formeln kopieras ner till cell G6 är resultatet summan Haileys 3 första poäng.
Summa sista n matchande värden
För att summera de senaste n matchande värdena kan du anpassa formeln så här:
=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,SUM(--(name=F5)),-1)))
Denna formel förklaras mer detaljerat här.