
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.