Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketBeregn skæve arbejdstider

 Besvar Besvar
Forfatter
djguffe Se dropdown
Forum Begynder
Forum Begynder


Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
Direkte link til dette indlæg 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
 
Til top



Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg 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
Til top
djguffe Se dropdown
Forum Begynder
Forum Begynder


Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
Direkte link til dette indlæg 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.
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 02.Nov.2011 kl. 19:34
OK, så prøver vi noget andet.
 
Kender du til VBA?
Jeg har lavet et eksempel til dig her: uploads/1/taelle_tid_indenfor_omraade.xls
 
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

Til top
djguffe Se dropdown
Forum Begynder
Forum Begynder


Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
Direkte link til dette indlæg 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
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg 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 Wink
 
//Allan
Til top
djguffe Se dropdown
Forum Begynder
Forum Begynder


Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
Direkte link til dette indlæg 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
 
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg 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
 
Til top
djguffe Se dropdown
Forum Begynder
Forum Begynder


Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
Direkte link til dette indlæg Sendt: 05.Nov.2011 kl. 13:36
Hej igen
 
Jeg er ked af at sigge det men det virker ikke
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg 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
Til top
djguffe Se dropdown
Forum Begynder
Forum Begynder


Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
Direkte link til dette indlæg 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
Til top
djguffe Se dropdown
Forum Begynder
Forum Begynder


Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
Direkte link til dette indlæg 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.
Til top
djguffe Se dropdown
Forum Begynder
Forum Begynder


Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
Direkte link til dette indlæg Sendt: 06.Nov.2011 kl. 14:31
Fejlen er fundet
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 06.Nov.2011 kl. 21:48
Hej;
 
Citat: djguffe 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
Til top
djguffe Se dropdown
Forum Begynder
Forum Begynder


Medlem: 02.Nov.2011
Land: DK
Status: Offline
Point: 18
Direkte link til dette indlæg 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.
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk