
Obecný vzorec
=SUM(INDEX(FILTER(range,logic),SEQUENCE(n,1,1,1)))
souhrn
Chcete-li sečíst prvních n shodných hodnot v sadě dat, můžete použít vzorec založený na funkcích FILTER a SEQUENCE. V zobrazeném příkladu je vzorec v buňce G5 zkopírovaný dolů:
=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,1,1)))
kde název (B5: B16) a skóre (C5: C16) jsou pojmenované rozsahy.
Vysvětlení
Funkce FILTER, nová v aplikaci Excel 365, pomůže zjednodušit některé složité problémy se vzorci.
V tomto příkladu je cílem sečíst první 3 skóre jak pro Jakea, tak pro Hailey, na základě pořadí, které se objeví v tabulce. Celkově je skóre 12 a Jake a Hailey mají po 6 bodech.
Při práci zevnitř ven je prvním úkolem vygenerovat seznam skóre pro každé jméno. To se provádí pomocí funkce FILTER:
FILTER(score,name=F5)
Výsledkem „Jake“ v buňce F5 je pole se všemi Jakeovými skóre, jako je tato:
(6;5;7;7;6;8)
Toto pole je vráceno funkci INDEX jako argument pole:
INDEX((6;5;7;7;6;8),SEQUENCE(3,1,1,1))
Funkce SEQUENCE se používá ke generování hodnoty pro číslo řádku a vrací pole se 3 čísly,
SEQUENCE(3,1,1,1) // returns (1;2;3)
V tomto okamžiku můžeme napsat část INDEX vzorce takto:
INDEX((6;5;7;7;6;8),(1;2;3))
INDEX vrací hodnoty spojené s prvními 3 řádky v poli do funkce SUM:
=SUM((6;5;7)) // returns 18
a SUM vrací součet těchto hodnot jako konečný výsledek v G5. Když je vzorec zkopírován dolů do buňky G6, výsledkem je součet prvních 3 skóre Hailey.
Součet posledních n shodných hodnot
Chcete-li sečíst posledních n shodných hodnot, můžete vzorec upravit takto:
=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,SUM(--(name=F5)),-1)))
Tento vzorec je vysvětlen podrobněji zde.