Excel-formel: Sum første n matchende værdier -

Indholdsfortegnelse

Generisk formel

=SUM(INDEX(FILTER(range,logic),SEQUENCE(n,1,1,1)))

Resumé

For at opsummere de første n matchende værdier i et datasæt kan du bruge en formel baseret på funktionerne FILTER og SEKVENS. I det viste eksempel er formlen i celle G5, kopieret ned,:

=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,1,1)))

hvor navn (B5: B16) og score (C5: C16) er navngivet områder.

Forklaring

FILTER-funktionen, ny i Excel 365, kan hjælpe med at forenkle nogle vanskelige formelproblemer.

I dette eksempel er målet at summere de første 3 scores for både Jake og Hailey, baseret på rækkefølgen, de vises i tabellen. Der er 12 scoringer i alt, og Jake og Hailey har 6 scoringer hver.

Arbejder indefra og ud, den første opgave er at generere en liste over scores for hvert navn. Dette gøres med FILTER-funktionen:

FILTER(score,name=F5)

Med "Jake" i celle F5 er resultatet en matrix med alle Jakes scores som denne:

(6;5;7;7;6;8)

Denne matrix returneres til INDEX-funktionen som arrayargumentet:

INDEX((6;5;7;7;6;8),SEQUENCE(3,1,1,1))

SEQUENCE-funktionen bruges til at generere værdien for række nummer og returnerer en matrix med 3 tal,

SEQUENCE(3,1,1,1) // returns (1;2;3)

På dette tidspunkt kan vi skrive INDEX-delen af ​​formlen sådan:

INDEX((6;5;7;7;6;8),(1;2;3))

INDEX returnerer værdier tilknyttet de første 3 rækker i arrayet til SUM-funktionen:

=SUM((6;5;7)) // returns 18

og SUM returnerer summen af ​​disse værdier som det endelige resultat i G5. Når formlen kopieres ned til celle G6, er resultatet summen af ​​Hailey's første 3 scores.

Sum sidste n matchende værdier

For at opsummere de sidste n matchende værdier kan du tilpasse formlen således:

=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,SUM(--(name=F5)),-1)))

Denne formel forklares mere detaljeret her.

Interessante artikler...