|
Mere om SUMPRODUKT()Jeg har tidligere skrevet en artikel om funktionen SUMPRODUKT() og dens mulighed for at teste for flere betingelser på samme tid. Jeg har også refereret til funktionen i fx artikler om løsninger på konkrete problemstillinger, blandt i Opslag til højre og venstre, Find værdi på baggrund af to andre værdier, Tæl tal i intervaller, samt i to småtip, Tæl unikke celleværdier i et område og Sammenlægge hver anden kolonne. I denne artikel følger flere eksempler på, hvordan SUMPRODUKT kan anvendes. Flere måder at opnå det
samme på =SUMPRODUKT((A1:A6="bil")*(B1:B6="blå")*(C1:C6)) eller =SUMPRODUKT((A1:A6="bil")*(B1:B6="blå");(C1:C6)) eller =SUMPRODUKT((A1:A6="bil")*1;(B1:B6="blå")*1;(C1:C6)) eller =SUMPRODUKT(--(A1:A6="bil");--(B1:B6="blå");(C1:C6)) eller bare =SUMPRODUKT(-(A1:A6="bil");-(B1:B6="blå");(C1:C6)) Man kan faktisk bruge flere andre metoder, men forskellen er, at den første arbejder på alle matricerne på én gang, den anden på de to første samtidigt og separat på den sidste, mens de tre sidste løsninger arbejder separat på hver enkelt matrice. Resultatet bliver det samme, uanset hvad man vælger, så det er et spørgsmål om smag. Selv foretrækker jeg den første, selv om der er situationer, hvor den ikke kan anvendes, fx hvis formlen kun indeholder en enkelt matrice. Til gengæld er der også situationer, hvor det er den eneste mulighed. Sumprodukt til ELLER
betingelser.
I tidligere eksempler har vi skullet finde summen a C-kolonnen, for fx de tilfælde, hvor hvor der stod Bil i A-kolonnen og Blå i B-kolonnen. Imidlertid kan vi også bruge funktionen til at finde summen i c-kolonnen, hvor der enten står Bus i A-kolonnen ELLER Rød i B-kolonnen. Dette kan gøres med =SUMPRODUKT(((A1:A6="Bus")+(B1:B6="Rød"))*(C1:C6)) i det "+" giver et "ELLER" kriterium. Da der skal tælles alle i C, hvor ENTEN A er Bus ELLER B er Rød skal de to udtryk "pakkes ind" i en samlet parentes som så "sættes sammen med et OG kriterium, repræsenteret ved * inden sidste matrice. Vil jeg bare tælle Bus og Rød er dette nok: =SUMPRODUKT((A1:A6=Bus")+(B1:B6="Rød")). SUMPRODUKT() kombineret med
andre funktioner Eksempel 1 =SUMPRODUKT(--(A1:A6="Bil")). Da der kun er tale om en enkelt matrice, duer * ikke her. Hvis man også vil have de celler med, hvor der måske står en blank før eller efter Bil, altså " Ole" eller "Ole ", kan i stedet bruge: =SUMPRODUKT(--(FJERN.OVERFLØDIGE.BLANKE(A1:A6)="Bil")) Læg mærke til placeringen af parenteserne. Det er først, når eventuelle overflødige blanke er "væk", at der sammenlignes med Bil. Eksempel 2 =INDEKS(C2:I14;SUMPRODUKT((RÆKKE(C2:H13)-RÆKKE(C2)+1)*(C2:H13=MAKS(C2:H13));7) Formlen finder den største værdi i en beregnet matrice, placeret i cellerne C2 til H13. Derefter returneres den værdi, der står i I-kolonnen ud for den række, der indeholder den største værdi i den beregnede celle. Eksempel 3 =SUMPRODUKT(--(UGEDAG(RÆKKE(INDIREKTE(A1&":"&A2)))=3)) I dette tilfælde findes tirsdage, da 1 = Søndag, 2 = Mandag, 3 = Tirsdag osv. Ugedagen repræsenteres af det sidste 3-tal i formlen. Funktionen virker ved, at INDIREKTE (virtuelt) udfylder rækker med alle datoer mellem start og slutdato. For hver "række" med en dato, undersøges rækkenummeret, og om det er en tirsdag. Derefter optælles alle de, der opfylder begge betingelser (rækkenummer og tirsdag). Da der i Excel 2003 kun er 65536 rækker, kan der ikke tælles længere end til 5. juni 2079, hvilket svarer til dag nummer 65535 (se evt. artiklen om Dato- og tidsberegninger.
|