Forfatter |
Emne Søg Emne funktioner
|
djguffe
Forum Begynder
Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
|
Emne: Beregn skæve arbejdstider Sendt: 02.Nov.2011 kl. 14:35 |
Hej alle sammen Jeg sidder og er ved at lave mig en skema hvor i jeg kan skrive mine vagter. Jeg ønsker at det skal kunne renge mine skæve arbejdstider ude. 17-06. Jeg har formlen fra 17 og frem men jeg kan ikke få den til at kun regne til kl. 06. Jeg bruger denne formel: =RC[-3]-MAKS(RC[-4];(17/24))+(RC[-4]>RC[-3]) Men jeg har jeg en vagt der starter kl. 23:30 til 7:00 Skal den ikke regne den time med efter 6. På forhånd tak
|
 |
|
|
 |
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 02.Nov.2011 kl. 15:40 |
Hej djguffe, Har du set denne tråd: /arbejdstidsplanlgning_topic41_post2672.html#2672" target="_blank"/arbejdstidsplanlgning_topic41_post2672.html#2672 Måske den kan guide dig på rette spor. //Allan
|
 |
djguffe
Forum Begynder
Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
|
Sendt: 02.Nov.2011 kl. 16:12 |
Hej Allan
Nej Desvære, er det ikke lige det jeg skal bruge.
Jeg har pause med løn for det første, for det andet har jeg 3 forskællige ting jeg skal have regnet ud. Det jeg har brug rof er at sætte en stop på hvor lang den skal regne til.
Tiderne jeg skal regne i er alle dage 17-06 og lørdag kl 14 til mandag kl 04.
|
 |
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 02.Nov.2011 kl. 19:34 |
OK, så prøver vi noget andet. Kender du til VBA? Metoden er baseret på en UDF (User defined function) som er programmeret i VBA. Du finder koden ved at trykke holde ALT neden mens du trykker 1 gang på F11 Vælg modulet 'PrgCode' i vinduet til venstre. Koden stammer fra en dialog jeg havde med Excel MPV Leo Heuser tilbage i 2004 Koden postes her: '=ColTime(Time1;Time2;Startrange;Endrange;GetTotalNumber) 'Startrange er
området for møde*tider*. 'Endrange er området for "gå-hjem" *tider*.
'Time1 og Time2 er intervallet, der ønskes undersøgt. Højst 24 timer!
'Time1 og Time2 er cellereferencer til tider (18:15) 'eller funktionen
TID(18;15;) indtastet direkte 'GetTotalNumber er valgfri (1 or 0
(standard)). Hvis den 'sættes til 1(én). returnerer funktionen det antal
gange 'det søgte interval findes.
'Fra regnearket: ' =ColTime($F$2;$G$2;A2;C2) 'hvor fx F2=22:00 og
G2=7:00 ' =ColTime(TID(22;;);TID(7;;);A2;C2) 'Træk cellen ned med
fyld-håndtaget
'Eller akkumuleret: ' =ColTime(F2;G2;A2:A100;C2:C100) 'hvor fx
F2=22:00 og G2=7:00 ' =ColTime(TID(22;;);TID(7;;);A2:A100;C2:C100) 'I
denne situation er det ikke tilladt at have 'tomme celler omgivet af celler
med indhold 'i A2:A100 og C2:C100 '
Function ColTime(Time1 As Double, _ Time2 As Double, StartRange As
Object, _ Endrange As Object, _ Optional GetTotalNumber As
Boolean) As Double 'leo heuser,May 1999/January 2002 Dim Cel As Object
Dim Dummy As Double Dim EndTime As Double Dim OffsetColumn As Long
Dim OffsetRow As Long Dim StartTime As Double Dim SubTime As Double
Dim TotalNumber As Long
OffsetRow = Endrange(1).Row - StartRange(1).Row OffsetColumn =
Endrange(1).Column - StartRange(1).Column For Each Cel In
StartRange.Cells Dummy = 0 If Cel.Value = "" Then Exit
For StartTime = Cel.Value EndTime =
Cel.Offset(OffsetRow, OffsetColumn).Value If StartTime = EndTime
Then If Time1 >= Time2 Then Dummy = 1 -
(Time1 - Time2) TotalNumber = TotalNumber + 1
Else Dummy = Time2 - Time1 TotalNumber
= TotalNumber + 1 End If ElseIf Time1 >= Time2
Then If StartTime <= Time1 And StartTime >= Time2 Then
If EndTime >= Time1 Then Dummy =
EndTime - Time1 TotalNumber = TotalNumber + 1
ElseIf EndTime <= Time2 Then Dummy = 1 -
Time1 + EndTime TotalNumber = TotalNumber + 1
ElseIf EndTime > Time2 And EndTime < StartTime Then
Dummy = 1 - Time1 + Time2 TotalNumber =
TotalNumber + 1 End If ElseIf StartTime
<= Time2 Then If EndTime >= Time2 And EndTime <=
Time1 Then Dummy = Time2 - StartTime
TotalNumber = TotalNumber + 1 ElseIf EndTime >
StartTime And EndTime <= Time2 Then Dummy = EndTime -
StartTime TotalNumber = TotalNumber + 1
ElseIf EndTime < StartTime Then Dummy = Time2 -
StartTime + 1 - Time1 + EndTime TotalNumber =
TotalNumber + 1 ElseIf EndTime >= Time1 Then
Dummy = Time2 - StartTime + EndTime - Time1
TotalNumber = TotalNumber + 1 End If ElseIf
StartTime >= Time1 Then If EndTime > StartTime Then
Dummy = EndTime - StartTime
TotalNumber = TotalNumber + 1 ElseIf EndTime <= Time2
Then Dummy = 1 - StartTime + EndTime
TotalNumber = TotalNumber + 1 ElseIf EndTime >= Time2
And EndTime <= Time1 Then Dummy = 1 - StartTime +
Time2 TotalNumber = TotalNumber + 1
ElseIf EndTime > Time1 And EndTime < StartTime Then
Dummy = 1 - StartTime + Time2 + EndTime - Time1
TotalNumber = TotalNumber + 1 End If End If
ElseIf Time1 < Time2 Then If StartTime <=
Time1 Then If EndTime < StartTime Or EndTime >= Time2
Then Dummy = Time2 - Time1
TotalNumber = TotalNumber + 1 ElseIf EndTime >= Time1 And
EndTime <= Time2 Then Dummy = EndTime - Time1
TotalNumber = TotalNumber + 1 End If
ElseIf StartTime >= Time1 And StartTime <= Time2 Then
If EndTime <= Time1 Or EndTime >= Time2 Then
Dummy = Time2 - StartTime TotalNumber = TotalNumber +
1 ElseIf EndTime < StartTime Then
Dummy = Time2 - StartTime + EndTime - Time1 TotalNumber
= TotalNumber + 1 ElseIf EndTime <= Time2 Then
Dummy = EndTime - StartTime TotalNumber =
TotalNumber + 1 End If ElseIf StartTime
>= Time2 Then If EndTime >= Time1 And EndTime <=
Time2 Then Dummy = EndTime - Time1
TotalNumber = TotalNumber + 1 ElseIf EndTime >= Time2
And EndTime < StartTime Then Dummy = Time2 - Time1
TotalNumber = TotalNumber + 1 End If
End If End If SubTime = SubTime + Dummy
Next Cel If GetTotalNumber Then ColTime =
TotalNumber Else ColTime = SubTime End If End
Function /Allan
|
 |
djguffe
Forum Begynder
Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
|
Sendt: 03.Nov.2011 kl. 16:29 |
Hej Allan
Det ser ud at være det jeg skal bruge men hvordan for jeg det lagt ind i mit eget dokument. Jeg er helt amatør til excel.
Kender kun til de simple udregninger.
På forhånd tak
|
 |
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 03.Nov.2011 kl. 17:33 |
Hej igen, Der er to måder. Enten lægger du koden ind selv, med mine anvisninger, ellers uploader du dit ark her til forummet og jeg lægger koden ind for dig. Du bestemmer  //Allan
|
 |
djguffe
Forum Begynder
Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
|
Sendt: 03.Nov.2011 kl. 17:50 |
Ja jeg ville ellers gerne lære hvordan men jeg kan ikke lige helt forstå det.
så derfor har jeg vedlagt mit dok.
På forhånd tak
|
 |
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 04.Nov.2011 kl. 08:40 |
Jeg har nu lagt koden ind i dit ark. Jeg har samtidig oprettet første formel til at beregne forskudt tid i cellen H2 Ude i højre margin har jeg tastet kriterierne for forskudt tid. Håber dette hjælper dig lidt på vej, eller skal du naturligvis bare vende tilbage hertil. //Allan
|
 |
djguffe
Forum Begynder
Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
|
Sendt: 05.Nov.2011 kl. 13:36 |
Hej igen
Jeg er ked af at sigge det men det virker ikke
|
 |
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 06.Nov.2011 kl. 10:01 |
Hej igen, Det lader til at dine sikkerhedsinstillinger skal rettes. Så gør således: Åben Excel 2010. Gå i menuen 'Filer' Vælg knappen 'Indstillinger' Vælg 'Sikkerhedscenter' Tryk på knappen 'Indstillinger for sikkerhedscenter' Vælg 'Indstillinger for makro' Sæt markering i 'Aktiver alle makroer....' Klik på OK Klik OK Luk Excel Åben arket igen. Det kan for Excel 2010's vedkommende være anbefalelsesværdigt at gemme filer fra internettet (også her fra forum) på f.eks. skrivebordet inden de åbnes, også pga. på udvidede sikkerhed i netop Excel 2010. //Allan
|
 |
djguffe
Forum Begynder
Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
|
Sendt: 06.Nov.2011 kl. 14:24 |
Hej igen
Det den laver af fejl er at den ikke stopper med et regne timer med efter 6:00 og på en fri dag hvor jeg ikke skriver nogle tid på regner den 13 timer.
Eks. Møde 23:54 slut 7:26 For jeg forskudt tid på 7:32 men den skal jo kun være 6:06
Jeg her fundet en anden formel. Men den virker heller ikke.
=(B1<=A1)*(1-(17/24)+(6/24))+MIN((6/24);B1)-MIN((6/24);A1)+MAKS((17/24);B1)-MAKS((17/24);A1)
A1 = møde
B1 = slut
Med venlig hilsen
djguffe
|
 |
djguffe
Forum Begynder
Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
|
Sendt: 06.Nov.2011 kl. 14:29 |
Lige et spørgsmål mere.
Hvordan laver jeg mine fletter om fra tal til bogstaver. Det er dem til fomlerne jeg taler om, i mange formler bruger man eks. A1-A2 osv men hos mig er det tal lodret og tal vanret men i formel feltet står der R1C1 i det der skulle hede A1.
|
 |
djguffe
Forum Begynder
Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
|
Sendt: 06.Nov.2011 kl. 14:31 |
Fejlen er fundet
|
 |
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 06.Nov.2011 kl. 21:48 |
Hej;
djguffe skrev:
Det den laver af fejl er at den ikke stopper med et regne timer med efter 6:00 og på en fri dag hvor jeg ikke skriver nogle tid på regner den 13 timer. Eks. Møde 23:54 slut 7:26 For jeg forskudt tid på 7:32 men den skal jo kun være 6:06 |
Jeg kan ikke forstå at beregningen fejler hos dig, resultatet bliver som du selv beskriver 6:06 //Allan
|
 |
djguffe
Forum Begynder
Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
|
Sendt: 09.Nov.2011 kl. 21:22 |
Allan tak for hjælpen, jeg ved ikke hvad der er sket men jeg har lavet mit dokument om og nu er fejlen forsvundet.
|
 |