Avatar billede fastwrite Nybegynder
17. januar 2005 - 21:49 Der er 17 kommentarer og
2 løsninger

sum.hvis - skal opfylde 2 betingelser

Hej.

Jeg har en lille hurtig en.

Jeg skal lave en sum.hvis der skal opfylde 2 betingelser.
Den første er at den skal kigge a1:a100 igennem, og kigge efter alle der hedder "1". Når det så er gjort, skal den næste sum.hvis så kigge alle b1:b100 igennem og kigge efter alle der hedder "1000". Når disse to betingelser er opfyldt, skal den summere på c1:c1000 og d1:d1000 og e1:e1000

Kan det lade sig gøre, og hvordan?!
Avatar billede bak Forsker
17. januar 2005 - 22:07 #1
=SUMPRODUKT((A1:A100 =  "1") * (B1:B100 = "1000") * (C1:C100))

Denne summer C1:C100 hvor de to betingelser er sande
Avatar billede fastwrite Nybegynder
17. januar 2005 - 22:13 #2
Spændende, bak - jeg prøver den lige..
Avatar billede bak Forsker
17. januar 2005 - 22:22 #3
hvis "1" og "1000" er tal og ikke som vist, tekst, skal formlen naturligvis være
=SUMPRODUKT((A1:A100 =  1) * (B1:B100 =1000) * (C1:C100))
Avatar billede fastwrite Nybegynder
17. januar 2005 - 22:25 #4
Hmm.. umiddelbart kan jeg ikke få den til at virke. Jeg må hellere forklare lidt mere udførligt.

I mit ark "Oversigt2004" har jeg i kolonne B3 et nummer "1000".
I kolonne C2 har jeg også et tal "1". I kolonne C3 skal formlen stå, og den skal gøre følgende:

Kig i arket DATA i celle B3:B100 efter alle der hedder "1". Når dette er gjort, skal den kigge efter alle "1000" i arket DATA i celle D3:D100. Når disse to betingelser er opfyldt, skal den summere G3:G100 + H3:H100 + I3:I100 i arket DATA.

Er det volapyk, eller kan du følge min tankegang?
Avatar billede fastwrite Nybegynder
17. januar 2005 - 22:25 #5
ja, alle er tal.
Avatar billede fastwrite Nybegynder
17. januar 2005 - 22:33 #6
Hey - jeg tror det virker nu!! Tester lige lidt mere.
Avatar billede bak Forsker
17. januar 2005 - 22:35 #7
>Er det volapyk, eller kan du følge min tankegang?
Nej ikke helt.... Den skal vel kun summere de rækker hvor begge betingelser er opfyldt...?
Avatar billede bak Forsker
17. januar 2005 - 22:41 #8
=SUMPRODUKT((Data!B1:B20=Oversigt2004!C2)*(Data!D1:D20=Oversigt2004!B3)*(Data!G1:I20))
Avatar billede katborg Praktikant
19. januar 2005 - 22:54 #9
Mener ikke sumprodukt vi virke på det her, da den ganger tallene i de enkelte kolonner med hinanden.

Men excel har en wizard til det

På engelsk "Conditional sum...", på dansk "Betinget sum...", menuen findes under Tools->Conditional sum...

Hvis du ikke har den menu, tilføjes den under Tools->Add-in

Wizard'en er, efter min mening, rimelig selvforklarende, men husk at hvis du retter i formlen bagefter så SKAL du bruge Shift+Ctrl+Enter og ikke kun Enter!

{=SUM(IF(Data!$B$3:$B$100=C2;IF(Data!$D$3:$D$100=B3;Data!$G$3:$J$100;0);0))}

Der SKAL være {} foran/bagved
Avatar billede katborg Praktikant
19. januar 2005 - 22:55 #10
Men Excel er engelsk

På dansk må det blive noget i retning af

{=SUM(HVIS(Data!$B$3:$B$100=C2;HVIS(Data!$D$3:$D$100=B3;Data!$G$3:$J$100;0);0))}
Avatar billede bak Forsker
19. januar 2005 - 23:53 #11
jo, sumprodukt virker skam fint til det, og det er netop fordi den ganger.
Hvis vi er enige om at Falsk er 0 og sand er 1, vil Data!B1:B20=Oversigt2004!C2 give en matrix på 20 stk et-taller og nuller afhængig af om udsagnet et sandt eller falskt.
det samme vil Data!D1:D20=Oversigt2004!B3
Data!G1:I20 vil bare give 20 summer. Altså vil excel regne produktet af disse matrixer ud.

ex.
A * B  * sum(G:I) = resultat

1 * 0 * 20 = 0
0 * 0 * 23 = 0
1 * 1 * 25 = 25
0 * 1 * 27 = 0
1 * 1 * 30 = 30

osv.
sumproduktet vil så være 0 + 0 + 25 + 0 + 30 = 55
Avatar billede katborg Praktikant
20. januar 2005 - 00:17 #12
Nu skriver fastwrite ikke noget om at der enten står 0 eller 1 i kriterie, faktisk skal der jo stå 1000 i den ene, men så kan man selvfølgelig bare dividere med 1000 til sidst i formlen. Desuden er betingelsen vel ikke nødvendig hvis der kun kan stå 0 eller 1 i Data!B1:B20 / Data!D1:D20.

Men hvad så hvis man fx. ønskede at summere Data!G3:I100, hvor kriterierne er ændret til
Oversigt2004!B2 = 3
Oversigt2004!B3 = 250

Så vil din sumprodukt ikke virke - og dog så skal man bare divere med B2*b3

Altså
=SUMPRODUKT((Data!B1:B20=Oversigt2004!C2)*(Data!D1:D20=Oversigt2004!B3)*(Data!G1:I20))/ (Oversigt2004!C2 * Oversigt2004!B3)
Avatar billede katborg Praktikant
20. januar 2005 - 00:35 #13
Hmm...
Jeg forstår ikke lige hvad der sker her

1 * 0    * 20 = 0
0 * 0    * 23 = 0
1 * 1000 * 25 = 25000
0 * 1000 * 27 = 0
1 * 1000 * 30 = 30000

Det burde give 55000, men formlen giver altså stadig væk 55 og sættes 0 ind i B3/B2 giver formel 23 - eneste række med både 0 i 1. og 2. kolonne.

Jeg må altså bøje mig og give dig ret i at sumproduct virker, selvom jeg ikke forstår logikken idet, når man nu indsætter 0 (0*0*23 = 23 ???)
Avatar billede bak Forsker
20. januar 2005 - 00:48 #14
tror du har misforstået det katborg.
0'erne og 1-tallene er en følge af sammenligningerne.
Det er ligemeget hvilken slags data der står i cellerne.

Data!B1:B20=Oversigt2004!C2
denne del af formlen vil internt i excel blive opfattet som en tabel således
Data!B1=Oversigt2004!C2
Data!B2=Oversigt2004!C2
Data!B3=Oversigt2004!C2

dvs hver celle i området B1:B20 vil blive sammenlignet med det der står i Oversigt2004!C2 . Hvis sammenliningen er OK er resultaet Sandt ellers falskt.
Hvis det er sandt vil det internt i excels hukommelse være 1, som jeg prøvede at illustrere i tabellen.

Den samme sammenligning bliver foretaget med Data!D1:D20 op imod Oversigt2004!B3
Avatar billede fastwrite Nybegynder
20. januar 2005 - 08:21 #15
I har da vist haft rimelig meget gang i den, mens jeg har været på arbejde ;o)

Men ja, bak's forslag virker faktisk, så min svigerfar blev meget glad da jeg hjalp ham med noget regnskab. (dejligt når ens svigerfar er afhængig af en. hæhæ)

Men tak for din indsats også katborg. Men jeg må desværre afvise dit forslag, da jeg bruger BAK's som virker.

Så, Bak - kom med et svar.
Avatar billede fastwrite Nybegynder
21. januar 2005 - 09:51 #16
bak? - plz kom med et svar.
Avatar billede bak Forsker
21. januar 2005 - 10:43 #17
fastwrite -> jeg vil gerne dele med katborg. Han har lagt arbejde i det :-)
Avatar billede fastwrite Nybegynder
23. januar 2005 - 22:54 #18
Fair nok ;o)
Avatar billede fastwrite Nybegynder
23. januar 2005 - 22:54 #19
Tak til jer begge! Det er helt super.. min svigerfar blev meget glad ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester