22. oktober 2007 - 19:54Der er
8 kommentarer og 1 løsning
Sum.hvis over flere ark
Hej
Jeg har brug for en løsning der kan gøre at sum.hvis funktionen kan anvendes over flere ark, som man kan ved sum-funktionen.
Jeg har et I alt ark og et slut ark. Jeg vil gerne kunne summere tal i kolonne C i ark1 til ark slut såfremt der i arkets kolonne A står en bestemt dato (angivet i i alt arkets kolonne A).
Med en almindelig sum ser funktionen således ud =SUM(Ark1:Slut!C3) og det er denne jeg gerne ville kunne erstatte af noget i atil med =SUM.HVIS('Ark1:Slut'!A:A;'I alt'!A2;'Ark1:Slut'!C:C) men denne funktion virker ikke over flere ark.
Blir nok nødt til at ty til en UDF Indsæt i et alm modul I arket skriver du : =sumArk(2) hvis det er række 2 du summerer eller du kan skrive : =sumArk(række(2:2)) så kan du kopiere formlen til flere celler med fyldhåndtag
Function sumArk(rk) Application.Volatile For Each sh In ActiveWorkbook.Sheets If sh.Name <> "Ialt" Then If sh.Cells(rk, 1) = Sheets("Ialt").Cells(rk, 1) Then x = x + sh.Cells(rk, 3) End If End If Next sumArk = x End Function
Jeg kan ikke få den til at summere alle tal i kolonne C hvis der står en bestemt dato i den samme rækkes kolonne A. Jeg vil gerne have funktionen til at virke som =sum.hvis(A:A;A5;E:E) gør på et ark men bare over flere ark. Det kan jeg ikke få ovenstående funktion til at gøre - gør jeg noget forkert?
Prøv denne, (rk) er rækkenummer på den dato i Ialt arket der sammenlignes med (er lidt i tvivl om det er ret forstået)
Function sumArk(rk) Application.Volatile x = 0 For Each sh In ActiveWorkbook.Sheets If sh.Name <> "Ialt" Then For t = 1 To sh.Cells(65500, 1).End(xlUp).Row If IsDate(Sheets("Ialt").Cells(rk, 1)) And sh.Cells(t, 1) = Sheets("Ialt").Cells(rk, 1) Then x = x + sh.Cells(t, 3) End If Next End If Next sumArk = x End Function
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.