Clever-Excel-Forum

Normale Version: Uhrzeiten berechnen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen zusammen,

ich bin seit heute neu hier im Forum. Konnte jedoch leider keine Lösung für mein Problem finden.

Für meine Frau die als Tagesmutter für Kinder arbeitet erstelle ich gerade eine Buchhaltungstabelle, da es für diesen Bereich keine fertigen Lösungen gibt.

Ich muss in einer Stundenabrechnungstabelle diverse Variablen mit einbeziehen.

1.) Wochentag = ja / nein
2.) Sollzeiten von 7-19Uhr
3.) Frühdienst von 5-7 Uhr
4.) Spät dienst von 19-22Uhr


Die Tabelle sieht folgendermaßen aus: (leider kann ich die Tabelle hier nicht einfügen)
 
Datum:           von:            bis:             Std/ Tag:                erw. Lohn:                  Zusatz:                  Summe:  

01.01.19          08:00         16:00         08:00                     (aut. ausgefüllt)            Dropdownliste       Berechnung


Die Spalten "Datum, von, bis" werden händisch ausgefüllt-
Die Spalte "Std/Tag" wird ausgerechnet (=I5-H5)
Die Spalte "erw. Lohn:" wird anhand eines Kontrollkästchens zugerechnet
Die Spalte "Zusatz" ist aktuell eine Dropdownliste für pauschale Berechnungen. Diese sollen jetzt jedoch gegen die Formeln getauscht werden.
Die Spalte "Summe" soll die Summe aus erw. Lohn und Zusatz werden.


Die normale Berechnung der Stunden ist einfach und auch kein Problem.
Jetzt geht es darum wenn z.bsp. von 06:30-18:00 Uhr gearbeitet wird soll unter Zusatz die Zeit von 06:30 bis 07:00 als Frühdienst mit einer Summe ausgewiesen werden die im angefangenen 30min Takt berechnet wird.

Soll heißen: sowohl im Frühdienst als auch im Spät dienst wird je angefangene 30min eine Gebühr von 1,00€ erhoben.

Diese Formel kriege ich aber einfach nicht auf Reihe.

Ich hoffe ihr versteht mein Kauderwelsch und könnt mir ggfs. helfen

LG

Morpheus
Hi,


Zitat:Die Tabelle sieht folgendermaßen aus: (leider kann ich die Tabelle hier nicht einfügen)

und warum nicht? Du kannst sensible Daten anonymisieren. Wichtig ist für uns der Aufbau incl. der verwendeten Formeln. Nähere Erläuterungen auch hier: https://www.clever-excel-forum.de/Thread...ng-stellen
Hallo,

berechtigte Frage.

Ich würde mal sagen, zu schnell geschrieben ohne vorher geguckt zu haben.

Jetzt füge ich einen Ausschnitt an.

Wie gesagt die Spalte Zusatz kann so wie sie jetzt ist verworfen werden.

LG

Morpheus
Nochmal Hallo zusammen,

habe jetzt einen Ansatz gefunden, allerdings komme ich dabei nicht allzu weit.

Habe nachfolgendes Skript genutzt.

Die Frühdienstberechnung funktioniert super. Aber bei der Spätdienstberechnung haut er mir immer die gesamte Arbeitszeit rein, anstatt die Zeit zwischen 19 und 22Uhr rauszurechnen.

Skript:


Code:
Option Explicit

Function Frühdienst(Beginn As Date, Ende As Date) As Date
   Dim NsStart As Date, NsEnde As Date
   Dim Ns As Boolean, ZweiTage As Boolean
   Dim Rc As Variant
   
   NsStart = CDate("05:00")   'Beginn des Frühdienst
   NsEnde = CDate("07:00")     'Ende des Frühdienst
   If Ende < Beginn Then ZweiTage = True
   If ZweiTage Then Ns = True
   If Beginn >= NsStart Or Beginn <= NsEnde Then Ns = True
   If Ende <= NsEnde Or Ende >= NsStart Then Ns = True
   If Ns Then
      If ZweiTage Then  'Beginn vor Mitternacht
         If Beginn >= NsStart Then  'Beginn in der Nachtschicht
            Rc = 1 - Beginn
         Else  'Beginn vor der Nachtschicht
            Rc = 1 - NsStart
         End If
         Rc = Rc + WorksheetFunction.Min(Ende, NsEnde)
      Else  'Nur an 1 Tag
         If Beginn < NsEnde Then 'Beginn ab Mitternacht
            Rc = WorksheetFunction.Min(NsEnde, Ende) - Beginn
         Else  'Beginn vor Mitternacht
            Rc = WorksheetFunction.Min(1, Ende) - WorksheetFunction.Max(NsStart, Beginn)
         End If
      End If
   End If
   Frühdienst = Rc
End Function

Function Spätdienst(Beginn As Date, Ende As Date) As Date
   Dim NsStart As Date, NsEnde As Date
   Dim Ns As Boolean, ZweiTage As Boolean
   Dim Rc As Variant
   
   NsStart = CDate("19:00")   'Beginn des Spätdienst
   NsEnde = CDate("22:00")     'Ende des Spätdienst
   If Ende < Beginn Then ZweiTage = True
   If ZweiTage Then Ns = True
   If Beginn >= NsStart Or Beginn <= NsEnde Then Ns = True
   If Ende <= NsEnde Or Ende >= NsStart Then Ns = True
   If Ns Then
      If ZweiTage Then  'Beginn vor Mitternacht
         If Beginn >= NsStart Then  'Beginn in der Nachtschicht
            Rc = 1 - Beginn
         Else  'Beginn vor der Nachtschicht
            Rc = 1 - NsStart
         End If
         Rc = Rc + WorksheetFunction.Min(Ende, NsEnde)
      Else  'Nur an 1 Tag
         If Beginn < NsEnde Then 'Beginn ab Mitternacht
            Rc = WorksheetFunction.Min(NsEnde, Ende) - Beginn
         Else  'Beginn vor Mitternacht
            Rc = WorksheetFunction.Min(1, Ende) - WorksheetFunction.Max(NsStart, Beginn)
         End If
      End If
   End If
   Spätdienst = Rc
End Function


Anbei auch noch mal die Beispieltabelle, dort sind in Spalte U und V die Funktionen eingefügt. Die Funktionen zu verschachteln hab ich noch nicht versucht.

LG

Morpheus
Nochmals Hallo,

das Leben kann so einfach sein.

Mal ne Runde mit dem Hund gehen, damit man mal wieder sieht was man macht und schon sind alle meine Probleme gelöst.

Habe euch mal die fertigen Formeln mit angehängt, falls noch jemand das Problem hat.

Leider ging es aber nicht ohne Hilfstabelle (ab Spalte X).

Jetzt rechnet er tatsächlich aus wie viele angefangene 30min im Früh und Spätdienst geleistet werden, multipliziert sie mit dem vorgegebenen Werten (grün hinterlegte Zellen) und ich kann sogar die Spalte Zusatz lassen, da dann auch Gebühren für Übernachtungen usw. noch zugerechnet werden.

Trotzdem danke an alle die sich das Problem angeschaut haben.

LG

Morpheus