Excel formula: Vsota n najvišjih vrednosti z merili -

Splošna formula

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

Povzetek

Če želite povzeti zgornjih n vrednosti v merilih, ki se ujemajo, lahko uporabite formulo, ki temelji na funkciji LARGE, oviti znotraj funkcije SUMPRODUCT. V generični obliki formule (zgoraj) obseg predstavlja obseg celic, ki se primerjajo z merili , vrednosti predstavljajo številske vrednosti, iz katerih se pridobijo zgornje vrednosti, N pa predstavlja N-to vrednost.

V primeru aktivna celica vsebuje to formulo:

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

Kjer je barva imenovani obseg B5: B12, vrednost pa imenovani obseg C5: C12.

Pojasnilo

V svoji najpreprostejši obliki vrne LARGE "N-to največjo" vrednost v območju s to konstrukcijo:

=LARGE (range,N)

Tako na primer:

=LARGE (C5:C12,2)

bo vrnil 2. največjo vrednost v območju C5: C12, kar je 12 v prikazanem primeru.

Če pa kot drugi argument vnesete LARGE kot »konstanto matrike« (npr. Konstanto v obliki (1,2,3)), bo LARGE vrnil matriko rezultatov namesto enega rezultata. Torej, formula:

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

bo vrnil 1., 2. in 3. največjo vrednost C5: C12 v takem polju: (12,12,10)

Trik je torej v filtriranju vrednosti glede na barvo pred zagonom LARGE. To naredimo z izrazom:

(color=E5)

Kar ima za posledico niz TRUE / FALSE vrednosti. Med operacijo množenja se te vrednosti prisilijo v enote in ničle:

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

Končni rezultat je torej, da samo vrednosti, povezane z barvo "rdeča", preživijo operacijo:

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

ostale vrednosti pa so prisiljene na nič.

Opomba: ta formula ne bo obravnavala besedila v obsegu vrednosti. Glej spodaj.

Ravnanje z besedilom v vrednostih

Če imate besedilo kjer koli v obsegu vrednosti, bo funkcija LARGE vrnila napako #VALUE in zaustavila delovanje formule.

Za obdelavo besedila v obsegu vrednosti lahko dodate funkcijo IFERROR tako:

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

Tu zajamemo napake LARGE, ki jih povzročijo besedilne vrednosti, in jih nadomestimo z nič. Če uporabljate IF znotraj LARGE, je treba v formulo vnesti control + shift + enter, zato namesto SUMPRODUCT preklopimo na SUM.

Opomba: Naletel sem na to formulo, ki jo je objavil neverjeten Barry Houdini na stackoverflow.

Zanimive Članki...