
Všeobecný vzorec
=SUM(INDEX(FILTER(range,logic),SEQUENCE(n,1,1,1)))
Zhrnutie
Ak chcete spočítať prvých n zhodných hodnôt v množine údajov, môžete použiť vzorec založený na funkciách FILTER a SEKVENCIA. V zobrazenom príklade je vzorec v bunke G5, skopírovaný nadol,:
=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,1,1)))
kde meno (B5: B16) a skóre (C5: C16) sú pomenované rozsahy.
Vysvetlenie
Funkcia FILTER, nová v aplikácii Excel 365, pomáha zjednodušiť niektoré zložité problémy so vzorcom.
V tomto príklade je cieľom spočítať prvé 3 skóre pre Jakea aj Haileyho na základe poradia, v akom sa nachádzajú v tabuľke. Celkovo je skóre 12 a Jake a Hailey majú po 6 skóre.
Pri práci zvnútra von je prvou úlohou vygenerovať zoznam skóre pre každé meno. To sa deje pomocou funkcie FILTER:
FILTER(score,name=F5)
S "Jake" v bunke F5 je výsledkom pole so všetkými Jakeovými skóre, ako je toto:
(6;5;7;7;6;8)
Toto pole je vrátené funkcii INDEX ako argument poľa:
INDEX((6;5;7;7;6;8),SEQUENCE(3,1,1,1))
Funkcia SEQUENCE sa používa na vygenerovanie hodnoty pre číslo riadku a vráti pole s 3 číslami,
SEQUENCE(3,1,1,1) // returns (1;2;3)
V tomto okamihu môžeme napísať INDEX časť vzorca takto:
INDEX((6;5;7;7;6;8),(1;2;3))
INDEX vráti hodnoty spojené s prvými 3 riadkami v poli do funkcie SUM:
=SUM((6;5;7)) // returns 18
a SUM vráti súčet týchto hodnôt ako konečný výsledok v G5. Keď sa vzorec skopíruje do bunky G6, výsledkom je súčet prvých 3 skóre Hailey.
Súčet posledných n zhodných hodnôt
Ak chcete sčítať posledných n zhodných hodnôt, môžete upraviť vzorec takto:
=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,SUM(--(name=F5)),-1)))
Tento vzorec je podrobnejšie vysvetlený tu.