Avatar billede 8718 Juniormester
26. november 2008 - 23:25 Der er 39 kommentarer og
1 løsning

Formel til tidsberegning

Jeg har en mødetid og gåtid i hhv. kolonne A og B. Tiderne er registreret i tidsformat xx:xx.
Tiderne kan være over hele døgnet - og mødetid kan være før 24:00 og gåtid efter 24:00.

Hvordan skal formlerne se ud, for at jeg får beregnet nedenstående tillæg rigtigt? (Resultat skal være omregnet til alm. tal.


Tillæg 1 = Timer ml. 15-18
Tillæg 2 = Timer ml. 18-21
Tillæg 3 = Timer ml. 21-06
               
På forhånd tak.
Avatar billede vejmand Juniormester
27. november 2008 - 00:28 #1
Avatar billede jkrons Professor
27. november 2008 - 00:32 #2
Det er svært at sige hvordan formlerne skal se ud, da det afhænger af de præcise varianter af møde- og gå-hjem tid. Foruden de regler, som måske(msåke ikek findes, hvis man fx møder kl. 03.00 og går hjem kl. 02:00 to dage senere.
Avatar billede kabbak Professor
27. november 2008 - 00:33 #3
denne er vist tæt på, prøv at teste

alle værdier skal være klokkeslæt


Public Function Overtid(Mødetid As Date, sluttid As Date, StartOvertid As Date, Slutovertid As Date) As Double
    Dim TT As Date, I As Integer
    Application.Volatile
    If Mødetid > sluttid Then sluttid = sluttid + 1
    If StartOvertid > Slutovertid Then Slutovertid = Slutovertid + 1
    For TT = StartOvertid To Slutovertid Step TimeSerial(0, 1, 0)
        If sluttid > TT And TT > Mødetid Then
            I = I + 1
        End If
    Next
    If I > 0 Then
        Overtid = I / 60
    Else
        Overtid = 0
    End If
End Function
Avatar billede 8718 Juniormester
27. november 2008 - 00:46 #4
I var hurtige.
-> vejmand. Jeg kender artiklen - men hvor står hjælpen til mit spørgsmål i den artikel?
-> jkrons - har selv tænkt på den variant - men hvis man nu forudsætter, at arbejdstiden vil være maks 24 timer - ??
-> kabbak - kan man bruge alm. formler i stedet for en makro?
Avatar billede vejmand Juniormester
27. november 2008 - 01:02 #5
Som jkrons skriver, det afhænger af de præcise varianter af møde- og gå-hjem tid.

Artiklen, som jkrons har skrevet, er endog meget oplysende.
Avatar billede 8718 Juniormester
27. november 2008 - 01:18 #6
Jeg negligerer bestemt ikke jkrons artikel, som jeg ofte finder meget nyttig. Men jeg synes ikke lige, at den berører min problemstilling.
Mht. præcise varianter af møde- og gåhjem tider, så ville jeg meget gerne, hvis formlen tog højde for alle varianter indenfor 24 timer. Vil mene det kan lade sig gøre, kan bare ikke lige overskue det
Avatar billede jkrons Professor
27. november 2008 - 10:20 #7
8710-> hvis du ser på de forskellige spørgsmål, der er stillet omkring dette emenm, både her, men også i forskellige internationale fora, vil du se, at det er umuligt at lave en generel formel, der kan håndtere alle varianter af tidsberegninger. Man kan stort set altid finde en eller flere undtagelser, som formlerne ikke dækker. Jeg vil gerne se på en formellløsning, men det kan godt tage et tid at få testet alle varianter, og rettet formlen til.

Det er derfor, det er nødvendigt med en helt præcis beskrivelse af den situation, der skal løses.
Avatar billede jkrons Professor
27. november 2008 - 10:25 #8
kabbak->Jeg har prøvet din løsning med mødetid 21:00 gåhjem-tid 19:00 Når jeg beregner overtiden mellem 15 og 18 giver den 0, hvor den burde give 3. 18-21 tiden giver også 0, men burde give 1. 21-06 tiden giver 23:36, hvor den burde give 9.

Har jeg mødetid kl. 20:00 og gåhjemtid kl. 19:00 giver alle tiderne 0.
Avatar billede kabbak Professor
27. november 2008 - 12:25 #9
=Overtid($A$1;$B$1;"15:00";"18:00")

virker da her, men sommetider er der et minut galt
Avatar billede kabbak Professor
27. november 2008 - 12:26 #10
Har jeg mødetid kl. 20:00 og gåhjemtid kl. 19:00

virker fint her

=Overtid($A$1;$B$1;"21:00";"06:00")
Avatar billede 8718 Juniormester
27. november 2008 - 12:46 #11
Jeg synes ikke lige excel genkender formlen =overtid. Jeg har en dansk version.
27. november 2008 - 12:51 #12
'Overtid' er den funktion kabbak postede 27/11-2008 00:33:33.
Avatar billede jkrons Professor
27. november 2008 - 14:12 #13
kabbak-> Muligvis er det fordi har har 21:00 og 06:00 osv. i celler, så de opfattes som tidspunkter, ikke som tekster.
Avatar billede jkrons Professor
27. november 2008 - 14:15 #14
Nu har jeg prøvet at kopiere dine formeleksempler direkte , men får stadig 0. Mystisk.
Avatar billede kabbak Professor
27. november 2008 - 14:58 #15
jkrons > jeg har også prøvet med celler, det virker også.
Avatar billede jkrons Professor
27. november 2008 - 15:00 #16
Jeg har snart prøvet alle varianter, og kan ikke få det til at virke. Mystisk, mystisk.
Avatar billede kabbak Professor
27. november 2008 - 15:48 #17
Avatar billede jkrons Professor
27. november 2008 - 16:06 #18
Jeg får samme fejl i din.  Hvis jeg møder kl. 21.00 og går hjem kl. 19.00 får jeg got nok 9 timer (8,98) mellem 21 og 06, men mellem 15 og 18 skulle der være 3 timer og mellem 18 og 21 skulle der være 1. I begge tilfælde får jeg 0.
Avatar billede jkrons Professor
27. november 2008 - 16:07 #19
Og møder jeg 1-1-08 19:00 og gåt hjem 3-1-08 21.00 får jeg slet ingen ting.
Avatar billede kabbak Professor
27. november 2008 - 17:01 #20
Det skal holdes under 24 timer
Avatar billede jkrons Professor
27. november 2008 - 17:05 #21
Mener du inden for et kalenderdøgn?
Avatar billede kabbak Professor
27. november 2008 - 17:08 #22
den regner ikke overtid efter kl. 15:00 dagen efter.
Avatar billede kabbak Professor
27. november 2008 - 17:09 #23
hvis du kan lure hvorfor den sidste overtid ender på 8,98 i stedet for 9,00, så vil jeg gerne vide det.
Avatar billede jkrons Professor
27. november 2008 - 17:19 #24
1) Det er vel et problem, at den den overtid, man arbejder mellem 15 og 19 næste dag ikke medregnes :-)

2)Fordi I ikke bliver initieret. Den starter derfor med at være 0, og den når kun på på 539, ikke 540, som den skulle. Sæt I = 1 i begyndelsen af din kode, så virker den del.
Avatar billede kabbak Professor
27. november 2008 - 17:37 #25
nu er det vel sjælent at man arbejder så længe, men her er den rettede kode


Public Function Overtid(Mødetid As Date, sluttid As Date, StartOvertid As Date, Slutovertid As Date) As Double
    Dim TT As Date, I As Integer
   
    Application.Volatile
    If Mødetid >= sluttid Then sluttid = sluttid + 1
    If StartOvertid > Slutovertid Then
    Slutovertid = Slutovertid + 1
    I = 1
    End If
    For TT = StartOvertid + TimeSerial(0, 1, 0) To Slutovertid Step TimeSerial(0, 1, 0)
        If sluttid >= TT And TT > Mødetid Then
            I = I + 1
        End If
    Next
    If I > 0 Then
        Overtid = I / 60
    Else
        Overtid = 0
    End If
End Function
Avatar billede 8718 Juniormester
27. november 2008 - 17:53 #26
Hvis jeg lige må bryde ind :-).
Jeg har downloadet kabbak's fil. Når jeg i den fil forsøger at kopiere den ændrede kode ind, så sker der ikke noget. Jeg højreklikker på fanen, sletter koden, og kopier den nye kode ind. Men jeg får stadig x,98 (som dog er ligegyldigt) - men jeg får også forkerte tillæg i jkrons eksempler - f.eks. 21:00-19:00. Som jeg har forstået det, så er dette rettet i den nye kode - så det må være mig, der ikke kan sætte den ind.
Noget andet: er det overhovedet muligt at skrive løsningen som en formel, eller skal det være som en makro?
og lige til sidst - det er helt okay, at arbejdstiden ikke må overstige 24 timer. Det er vel reelt set kun en teoretisk mulighed.
Avatar billede jkrons Professor
27. november 2008 - 18:05 #27
I dit tilfælde er muligheden for at arbejde mere end 24 timer måske teoretisk, men ikke i alle. Det er af samme grund, jeg startede med at postulere, at en genrel overtidsberegningsfunktion er umulig at lave.

Dit problem kan sikkert godt løses med formler, men de bliver ikke helt simple.
Avatar billede 8718 Juniormester
27. november 2008 - 18:39 #28
Nu har jeg prøvet følgende:
Kolonne A-C = mødetid, gåtid, arbejdstid i t:m
Kolonne D-F = mødetid, gåtid, arbejdtid omregnet til tal (*24)
Kolonne G har jeg så tillægstid ml. 15-18 med flg. formel:
=+HVIS(OG(E2>18;D2<18)=SAND;18-MAKS(D2;15);0)+(HVIS(E2>39;MIN(E2;42)-39;0))
Lyder det forkert - eller burde jeg kunne nørkle videre på samme måde til de øvrige tillægstider?
Avatar billede 8718 Juniormester
27. november 2008 - 18:50 #29
øv - fra 16:00-17:00 giver 0 i tillæg...
Avatar billede 8718 Juniormester
27. november 2008 - 18:58 #30
Jeg kunne ønske arbejdsmarkedets parter laaaangt væk. Hvordan kan man finde på, at skrue sådanne overenskomster sammen? Ser så godt ud på et stykke papir!
Avatar billede 8718 Juniormester
27. november 2008 - 19:12 #31
=+HVIS($D$3<18;MIN($E$3;18)-MAKS($D$3;15);0)+(HVIS($E$3>39;MIN($E$3;42)-39;0))

denne ser ud til at virke (indtil videre....)
Avatar billede 8718 Juniormester
27. november 2008 - 21:32 #32
Hjææælp!
Møde-/gåtid i B16 og B17 i format t:m
Møde-/gåtid i Y16 og Z16 i talformat
Tillæg 15-18 (virker):
=+HVIS(OG(Y16<18;Z16>15)=SAND;MIN(Z16;18)-MAKS(Y16;15);0)+(HVIS(Z16>39;MIN(Z16;42)-39;0))
Tillæg 18:21 (virker):
=+HVIS(OG(Y16<21;Z16>18)=SAND;MIN(Z16;21)-MAKS(Y16;18);0)+(HVIS(Z16>42;MIN(Z16;45)-42;0))
Jeg kan simpelthen ikke overskue det sidste tillæg fra 21-06.
Nogen forslag?
Avatar billede 8718 Juniormester
28. november 2008 - 00:23 #33
Jeg tror, den er der!
Tillæg 21-06:
=+HVIS(OG(Y16<24;Z16>21)=SAND;MIN(Z16;24)-MAKS(Y16;21);0)+(HVIS(Z16>45;MIN(Z16;48)-45;0))+(HVIS(Y16<6;MIN(Z16;6)-Y16;0))+(HVIS(Z16>24;MIN(Z16;30)-24;0))
Avatar billede jkrons Professor
28. november 2008 - 12:47 #34
Jegh ar ikke mulighed for at teste din løsning lige nu, men det eneste, du kan gøre, er at prøve den med alle mulige og umulige kombinationer af møde- og gåhjemtider, og så se om den altid regner rigtigt :-9
Avatar billede 8718 Juniormester
31. januar 2009 - 16:07 #35
Den sidste formel virker fint.
jkrons og kabbak lægger i et svar, så jeg kan dele pointene (må hellere få afsluttet)
Avatar billede kabbak Professor
31. januar 2009 - 18:14 #36
et svar ;-))
Avatar billede 8718 Juniormester
31. januar 2009 - 18:29 #37
>kabbak - det var vist ikke et svar :-)
Avatar billede kabbak Professor
31. januar 2009 - 20:23 #38
;-))
Avatar billede 8718 Juniormester
03. marts 2009 - 23:05 #39
>kabbak - jeg venter ikke længere på jkrons. Lukker nu.
Avatar billede jkrons Professor
03. marts 2009 - 23:20 #40
Fint nok. Beklager jeg ikke vender tilbage, men efter opdateringen af Eksperten får jeg ikke længere mail, selv om jeg overvåger grupperne, så jeg ser kun indlæg, når jeg tilfældigvis kigger forbi. Acces gruppen er en undtagelse. Derfra får jeg mail hele tiden.
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