Excel formula: SUMPRODUCT with IF -

Kazalo

Splošna formula

=SUMPRODUCT(expression,range)

Povzetek

Če želite filtrirati rezultate SUMPRODUCT z določenimi merili, lahko uporabite preproste logične izraze neposredno na polja v funkciji, namesto da uporabite funkcijo IF. V prikazanem primeru so formule v H5: H7:

=SUMPRODUCT(--(color="red"),quantity,price) =SUMPRODUCT(--(state="tx"),--(color="red"),quantity,price) =SUMPRODUCT(--(state="co"),--(color="blue"),quantity,price)

kjer so opredeljeni naslednji imenovani obsegi:

state=B5:B14 color=C5:C14 quantity=D5:D14 price=E5:E14

Če se raje izognete imenovanim obsegom, uporabite zgoraj vnesene obsege kot absolutne reference. Logične izraze v H6 in H7 je mogoče kombinirati, kot je razloženo spodaj.

Pojasnilo

Ta primer ponazarja eno ključnih prednosti funkcije SUMPRODUCT - zmožnost filtriranja podatkov z osnovnimi logičnimi izrazi namesto s funkcijo IF. Znotraj SUMPRODUCT je prva matrika logični izraz za filtriranje po barvi "rdeča":

--(color="red")

Rezultat tega so vrednosti matrike ali TRUE FALSE, ki se z dvojno negativno (-) operacijo prisilijo v enote in ničle. Rezultat je ta matrika:

(1;0;1;0;0;0;1;0;0;0)

Upoštevajte, da matrika vsebuje 10 vrednosti, po eno za vsako vrstico. Ena označuje vrstico, kjer je barva "rdeča", nič pa vrstico s katero koli drugo barvo.

Nato imamo še dva niza: enega za količino in enega za ceno. Skupaj s temi rezultati iz prvega polja imamo:

=SUMPRODUCT((1;0;1;0;0;0;1;0;0;0),quantity,price)

Če razširimo polja, imamo:

=SUMPRODUCT((1;0;1;0;0;0;1;0;0;0),(10;6;14;9;11;10;8;9;11;10),(15;18;15;16;18;18;15;16;18;16))

Jedro vedenja podjetja SUMPRODUCT je množenje, nato seštevanje nizov. Ker delamo s tremi nizi, lahko vizualiziramo operacijo, kot je prikazano v spodnji tabeli, kjer je kolona rezultat rezultat pomnoži array1 * array2 * array3 :

matrika1 polje2 array3 rezultat
1. 10. 15. 150
0 6. 18. 0
1. 14. 15. 210
0 9. 16. 0
0 11. 18. 0
0 10. 18. 0
1. 8. 15. 120
0 9. 16. 0
0 11. 18. 0
0 10. 16. 0

Obvestilo array1 deluje kot filter - nič vrednosti tukaj "izniči" vrednosti v vrsticah, kjer barva ni "rdeča". Če rezultate vrnemo v SUMPRODUCT, imamo:

=SUMPRODUCT((150;0;210;0;0;0;120;0;0;0))

Kar vrne končni rezultat 480.

Dodajanje dodatnih meril

Merila lahko razširite z dodajanjem drugega logičnega izraza. Če želite na primer najti skupno prodajo, kjer je barva "rdeča" in stanje "TX", H6 vsebuje:

=SUMPRODUCT(--(state="tx"),--(color="red"),quantity,price)

Opomba: SUMPRODUCT ne razlikuje med velikimi in malimi črkami.

Poenostavitev z enim nizom

Excel profesionalci bodo pogosto nekoliko poenostavili sintakso znotraj SUMPRODUCT, tako da bodo množili polja neposredno znotraj array1, kot je ta:

=SUMPRODUCT((state="tx")*(color="red")*quantity*price)

To deluje, ker matematična operacija (množenje) samodejno prisili vrednosti TRUE in FALSE iz prvih dveh izrazov v eno in ničlo.

Zanimive Članki...