Excel vzorec: Súčet najvyšších n hodnôt s kritériami -

Všeobecný vzorec

=SUMPRODUCT(LARGE((range=criteria)*(values),(1,2,3,N)))

Zhrnutie

Ak chcete sčítať prvých n hodnôt do kritérií zhody rozsahu, môžete použiť vzorec založený na funkcii LARGE, zabalený do funkcie SUMPRODUCT. V generické forme všeobecného vzorca (pozri vyššie), rozsah predstavuje rozsah buniek, ktoré sú v porovnaní s kritériami , hodnoty predstavujú číselné hodnoty, z ktorých sú vyberané najlepšie hodnoty, a N predstavuje myšlienku N-teho hodnoty.

V príklade obsahuje aktívna bunka tento vzorec:

=SUMPRODUCT(LARGE((color=E5)*(value),(1,2,3)))

Kde farba je pomenovaný rozsah B5: B12 a hodnota je pomenovaný rozsah C5: C12.

Vysvetlenie

Vo svojej najjednoduchšej podobe vracia LARGE „N-tú najväčšiu“ hodnotu v rozsahu s touto konštrukciou:

=LARGE (range,N)

Napríklad:

=LARGE (C5:C12,2)

vráti druhú najväčšiu hodnotu v rozsahu C5: C12, ktorá je v zobrazenom príklade 12.

Ak však zadáte „konštantu poľa“ (napr. Konštantu vo forme (1,2,3)) do parametra LARGE ako druhý argument, funkcia LARGE vráti namiesto jedného výsledku pole výsledkov. Takže vzorec:

=LARGE (C5:C12, (1,2,3))

vráti 1., 2. a 3. najväčšiu hodnotu C5: C12 v poli ako je toto: (12,12,10)

Trik teda spočíva v filtrovaní hodnôt podľa farby pred spustením LARGE. Robíme to s výrazom:

(color=E5)

Výsledkom je pole hodnôt TRUE / FALSE. Počas operácie násobenia sú tieto hodnoty vynútené do jednotiek a núl:

=LARGE((1;0;1;0;1;1;0;0)*(12;12;10;9;8;8;7;5),(1,2,3))

Konečným výsledkom je, že operáciu prežijú iba hodnoty spojené s farbou „červená“:

=SUMPRODUCT(LARGE((12;0;10;0;8;8;0;0),(1,2,3)))

a ostatné hodnoty sú vynútené na nulu.

Poznámka: tento vzorec nebude spracovávať text v rozsahu hodnôt. Pozri nižšie.

Zaobchádzanie s textom v hodnotách

Ak máte text kdekoľvek v rozsahu hodnôt, funkcia LARGE vyhodí chybu #HODNOTA a zastaví fungovanie vzorca.

Ak chcete spracovať text v rozsahu hodnôt, môžete pridať funkciu IFERROR takto:

=SUM(IFERROR(LARGE(IF((color=E5),value),(1,2,3)),0))

Tu zachytíme chyby z VEĽKÉHO spôsobené textovými hodnotami a nahradíme ich nulou. Použitie IF vo vnútri LARGE vyžaduje, aby bol vzorec zadaný pomocou klávesov control + shift + enter, takže namiesto SUMPRODUCT prepneme na SUM.

Poznámka: Narazil som na tento vzorec, ktorý zverejnil úžasný Barry Houdini pri stackoverflow.

Zaujímavé články...