Excel-formel: Summa först n matchande värden -

Innehållsförteckning

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.

Intressanta artiklar...