Avatar billede phillips Nybegynder
22. august 2007 - 14:13 Der er 7 kommentarer og
1 løsning

Problem med sum

Hej alle.

Det kan bedst forklares via et eksempel. Se filen text.xls på denne adresse: http://public.box.net/pstudinski73624

I kolonne F vil jeg vise de samlede salgstal på ugebasis - jeg har tallene på dagsbasis i kolonne C. Bemærk, at jeg har udfyldt F2 og F3 manuelt, men jeg kan ikke markere disse to celler og trække formlen ned i F4?

Jeg vil gerne undgå at skulle indtaste manuelt hver gang en ny uge er overstået.

Håber på hjælp her ;)
Avatar billede kabbak Professor
22. august 2007 - 14:38 #1
Hvis du nu skrev ugenunner i alle rækker, kan denne trækkes.

=SUMPRODUKT((A2:A22=E2)*C2:C22)

22 skal selvfølgelig være den sidste række med data i
Avatar billede phillips Nybegynder
22. august 2007 - 15:57 #2
Tak, men det virker desværre ikke i det eksempel, jeg har uploadet.
Avatar billede jkrons Professor
22. august 2007 - 17:04 #3
Her er en mulighed, men den kræver at du opretter en hjælpekolonne med ugenumrene i. I eksemplet er dettte gjort i G-kolonnen, så der i G1 står 1,v G2 står 2 og så fremdeles op til 53.

Formlen nedenfor beregner salget pr. uge. Denne formel skal stå i F2 og kan kopieres nedad uden problemer. Husk at rette referencerne, hvis du udvider området.

=SUM(INDIREKTE(ADRESSE(SAMMENLIGN(G1;$A$1:$A$22);3)):INDIREKTE(ADRESSE(SAMMENLIGN(G2;$A$1:$A$22)-1;3)))
Avatar billede excelent Ekspert
22. august 2007 - 17:06 #4
indsæt i F2 og træk ned

=SUM(INDIREKTE("C"&RÆKKE(2:2)*7-12&":C"&RÆKKE(2:2)*7-6))
Avatar billede jkrons Professor
22. august 2007 - 17:06 #5
Rent praktisk finder den adressen på celle i C-kolonnen, hvior der fx står1 i A-kolonnen. Desuden finder den adressen på den celle i C-kolonnen, lige over den række, hvor der i A- kolonnen står 2. Den tager så summen af c-kolonnen mellem disse to celler.
Avatar billede kabbak Professor
22. august 2007 - 17:07 #6
Her er en brugerdefineret funktion der gør det.
den skal ligge i et modul, samme sted som dine makroer gør.

Public Function Ugesum(Uge, Ugeområde As Range, Sumområde As Range) As Double
    Dim Data As Variant, Data2 As Variant, Summering As Boolean
    Dim MinSum As Double
    Data = Ugeområde
    Data2 = Sumområde
    For i = 1 To UBound(Data)
        If Data(i, 1) = Uge Then Summering = True
        If Data(i, 1) > Uge Then
            Summering = False
            Exit Function
        End If
        If Summering Then
            Ugesum = Ugesum + Data2(i, 1)
        End If
    Next
End Function


kaldes med

=Ugesum(E2;$A$2:$A$22;$C$2:$C$22)
Avatar billede phillips Nybegynder
23. august 2007 - 10:19 #7
excelent > Det virkede perfekt! Smid et svar ;)
Avatar billede excelent Ekspert
23. august 2007 - 10:44 #8
ok
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

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