Avatar billede alicevv Nybegynder
05. januar 2008 - 14:54 Der er 17 kommentarer og
1 løsning

Makro der kan tælle timer sammen

I regnearket OpgørelsexNAVNx2008 indsamles
nr. og de timer og overtimer der er udført på nr.

Arket er delt op i 53 uger.
Arket omfatter D4:FF53

I kolonne D står nr.
I kolonne E står timerne
I kolonne F står overtimer
Arket slutter med
I kolonne FD står nr.
I kolonne FE står timerne
I kolonne FF står overtimer

Arket opsamler nr. og timerne fra nogle
Excel filer.

Opgaven: Jeg kopier en, to, tre eller 4 uger
fra filen OpgørelsexNAVNx2008 over i filen
TESTopgørelsexNAVNx2008 ved hjælp af en
lille Makro.
Det giver ikke den store opgave hvis det kun
er en uge der kopieres over, men er det to, tre
eller fire uger giver det meget arbejde eks.:

U  G  E  0 1    U  G  E  0 2      U  G  E  03
Nr.  NT  OT  Nr.  NT  OT  Nr.  NT  OT
123    7      4    123    5      2    456    7      4
345    8      5    214    8    3    123    8      3
333    3      4    345    8    5    348    7      4
234    8      3    383    3    4    555    7      4

OSV op til 50 rækker.

Min opgave er, at jeg skal have f.eks timerne i
nr. 123 lagt sammen for uge 1, 2 og 3. manuelt
giver det:

123  20  9.

Er der nogen der kan hjælpe.

alicev
Avatar billede jkrons Professor
05. januar 2008 - 15:04 #1
Du må kunne gøre det med SUM.HVIS(), fx

=SUM.HVIS(A2:A50;123;B2:B0)+(SUM.HVIS(D2:D50;123;E2:E0)+SUM.HVIS(G2:G50;123;H2:H50) for tid og
=SUM.HVIS(A2:A50;123;C2:B0)+(SUM.HVIS(D2:D50;123;F2:F0)+SUM.HVIS(G2:G50;123;I2:I50)  for overtid.

Tilsvarende for andre numre. I ocverstående går jeg ud fra at Numre står i A, D og G, tid i B, E og H og overtid i C, F og I og at data starter i række 2. Ret selv til, så det passer.
Avatar billede jkrons Professor
05. januar 2008 - 15:05 #2
Fro at gøre det nemmere for dig selv, kan du skrive dine formler i fx B60 og C60, I A60 skirver du så 123. Ret formlerne så 123 erstattes af A60. Kopier formlerne nedad. Så skal du bare skrive dine numre i A-kolonnen, så skulle det kør af sig selv.
Avatar billede alicevv Nybegynder
05. januar 2008 - 16:19 #3
jkrons
Tak, for dit svar, men svaret løser ikke min opgave på en nem måde.
Jeg skulle selvfølgelig havde beskrevet opgaven ordentligt, for nr. 123 vil
ikke forekomme mere end mindst 1 uge og højst 4 uger, derfor skal jeg ændre i formlen
mange gange i løbet af et år, min 650 eller max. 1350 gange.
Tak for kommentaren.
alicev
Avatar billede jkrons Professor
05. januar 2008 - 18:00 #4
Ved at erstatte 123 med en cellereference behøver du ikke at rette i formlen, men kan bare ændre 123 i cellen til noget andet.

En makro er næppe heller sagen, med mindre der er systematik i de numre, der forekommer, så der kan programmeres et system til udskiftning af disse.
Avatar billede excelent Ekspert
05. januar 2008 - 18:06 #5
Er enig i jkrons indlæg, men vover alligevel det ene øje med en makro løsning

http://pmexcelent.dk/SumTid.xls
Avatar billede jkrons Professor
05. januar 2008 - 18:25 #6
Excelebnt-> Det var nogenlunde det samme jeg mente med at man skulle skrive numrene fra A60 og ned.
Avatar billede excelent Ekspert
05. januar 2008 - 18:30 #7
yep, men jeg går ud fra at fx. nr 123 kan stå hvor som helst i området D4:FF53
Af samme grund må formlerne tage højde for dette,- og det bliver nogen mega formler :-)
Avatar billede jkrons Professor
05. januar 2008 - 19:07 #8
Det har du ret i, hvis de står i helt tilfældig orden i områderne. I den situation ville jeg nok vælge en anden struktur på mine data, så ugerne stod under hinanden i stedet for ved siden af hinanden.
Avatar billede alicevv Nybegynder
05. januar 2008 - 21:07 #9
excelent
Det er noget i den retning jeg søger, men
Makroen regner på en eller anden måde forkert.

Jeg har prøvet at kopier de virkelige tal over i dit SumTid.

Nr. 1008872 har før beregningen 37 timer i en uge
og  14,5 i en anden uge.
Efter beregninger har nr.  1008872 14,5 timer i
hver sin uge, så der er gået 29 timer tabt.

Før beregningerne var der i en 4 ugers periode
1677 timer efter beregningerne er der 1786
timer.
alicev
Avatar billede excelent Ekspert
05. januar 2008 - 21:24 #10
Det lyder mystisk :-)
Jeg har ikke endnu kunnet få koden til at regne forkert
Vi mangler godt nok at slette kolonne B og C ved kørsel
hvis et nr. evt ikke er med i en ny kørsel
det kan gøres med følgende linie indsat i koden som nr. 2
Range("B5:C1000") = ""
Avatar billede excelent Ekspert
05. januar 2008 - 21:27 #11
send evt. fil med dine tal til
pm@madsen.tdcadsl.dk
Avatar billede alicevv Nybegynder
05. januar 2008 - 21:59 #12
De er sendt
Avatar billede excelent Ekspert
05. januar 2008 - 22:18 #13
ok modtaget
de nr. jeg har testet er regnet rigtig
hvilket nr siger du der er fejl i ?
det er SumTid-1 jeg tester i
Avatar billede excelent Ekspert
05. januar 2008 - 22:27 #14
Har lige registreret at fx nr. 1008946 forekommer 2 gange i kolonne A !!! er det en fejl eller ...?
Avatar billede alicevv Nybegynder
05. januar 2008 - 23:34 #15
Ja, det er en fejl, jeg sender en NYSumTid med kommentar
alicev
Avatar billede excelent Ekspert
06. januar 2008 - 20:44 #16
løsning blev :

Sub test()

Application.ScreenUpdating = False
Range("A4:A53").Copy Range("A100")
Range("D4:D53").Copy Range("A150")
Range("G4:G53").Copy Range("A200")
Range("J4:J53").Copy Range("A250")
Range("A100:A299").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("B100"), Unique:=True
Range("B100:B299").Sort Key1:=Range("B100"), Order1:=xlAscending
Range("B101:B299").Select
Range("B101:B299").Cut Range("B100")
Range("B100:B299").Cut Range("O4")
Range("A100:B299").Clear
Range("O1").Select

For nr = 4 To Cells(65500, "O").End(xlUp).Row
If Cells(nr, "O") <> "" Then
For col = 1 To 12 Step 3
For rk = 4 To 53
If Cells(rk, col) = Range("O" & nr) Then x = x + Cells(rk, col).Offset(0, 1)
If Cells(rk, col) = Range("O" & nr) Then o = o + Cells(rk, col).Offset(0, 2)
Next
Next
Range("P" & nr) = x
Range("Q" & nr) = o
x = 0: o = 0
End If
Next
Application.ScreenUpdating = True

End Sub
Avatar billede alicevv Nybegynder
06. januar 2008 - 21:03 #17
Det er en perfekt løsning. TAK.
alicev
Avatar billede alicevv Nybegynder
06. januar 2008 - 21:03 #18
Det er en perfekt løsning. TAK.
alicev
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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