Sie haben täglich eine Arbeitszeit von 8.8 Stunden zu leisten, damit bei Ihrer Lohnabrechnung keine Minusstunden auftauchen. Sie beginnen am Morgen um 07:30 Uhr und möchten um 17:10 Uhr Feierabend machen. Nun möchten Sie schnell wissen, wie lange Sie Mittagspause machen können, um auf Ihre 8.8 h zu kommen. Da stellt sich nun das Problem, dass wir einerseits Uhrzeitangaben haben und andererseits das Soll in Dezimalstunden.
Mathematisches Grundproblem
- Erst einmal geht es darum, die Differenz der Zeit von 07:30 Uhr bis 17:10 Uhr zu berechnen. In der Volksschule zählt das Kind erst einmal die vollen Stunden. Also 08:00 bis 17:00 Uhr und kommt dabei auf 9 Stunden. Dazu kommen noch die 30 Minuten von 07:30 – 08:00 Uhr plus die 10 Minuten nach 17:00 Uhr, demnach 40 Minuten. Sie würden also ohne Mittagspause 9 h 40 min (oder 9:40 h) arbeiten. Excel rechnet, wenn die Zellen als Uhrzeit formatiert sind, ganz normal grösserer Wert minus kleinerer Wert gleich Differenz der Uhrzeiten. Sie sehen schon, dass eine Mittagspause drinliegt.
- Wie viele Dezimalstunden sind nun 9 h 40 min? Beim bürgerlichen Rechnen liegt es nahe, alles in Minuten zu verwandeln. 1 h hat 60 Minuten, also 9 * 60 + 40 = 580 Minuten. Dividiert man diese Minutenzahl durch 60, erhalten wir 9.666… Stunden. Excel verwendet dazu eigentlich dasselbe Prinzip. Allerdings ist die Zelle der Ausgabe als Zahl formatiert. Die Formel lautet dann:
Mittagspause
Wir wissen: Sie würden also 9.67 h arbeiten, Ihr Soll ist aber nur 8.8 h, somit bleibt für die Mittagspause 9.67 – 8.8 = 0.87 h. Wunderbar! Doch wie viele Minuten sind das nun wieder? Jetzt geht es rückwärts
0.87 * 60 = 52.2 Minuten (rund 52 Minuten Pause).
Excel macht das nun so, wobei die Zelle A2 als Zahl und die Zelle B2 als Uhrzeit formatiert ist:
Wir wissen: Sie würden also 9.67 h arbeiten, Ihr Soll ist aber nur 8.8 h, somit bleibt für die Mittagspause 9.67 – 8.8 = 0.87 h. Wunderbar! Doch wie viele Minuten sind das nun wieder? Jetzt geht es rückwärts
0.87 * 60 = 52.2 Minuten (rund 52 Minuten Pause).
Excel macht das nun so, wobei die Zelle A2 als Zahl und die Zelle B2 als Uhrzeit formatiert ist:
Die Exakten unter Ihnen stellen zu Recht die Ungenauigkeit fest, die während des Umrechnens entsteht. Soll es sehr genau werden, so müssen wir über Sekunden oder gar Millisekunden rechnen. Das Verfahren bleibt aber dasselbe.
Unser Excel-Tool
Es lohnt sich nun diese Rechnerei in einem kleinen Excel-Tool zusammenzufassen. Starten Sie Excel mit einer leeren Arbeitsmappe und erstellen Sie ein Layout, das folgendermassen aussehen könnte. Oder beginnen Sie mit dieser formatierten Vorlage.
Nachdem die Zellen richtig formatiert sind (das gilt auf für die Zeile 9), soll die Benutzerin oder der Benutzer noch informiert werden, in welchem Format die Uhrzeiten einzugeben sind. Dazu markieren Sie die Zellen A5 und D5 und wählen im Menü Daten – Datenüberprüfung – Datenüberprüfung. Tragen Sie wie folgt ein:
Und für die Zell B5 erstellen wir eine Fehlermeldung über den gleichen Weg.
Berechnungsformeln erstellen
- Zuerst berechnen wir die Arbeitszeit brutto in der Zelle A9 mit der Formel: =B5-A5
- Nun berechnen wir in der Zelle D9 die Soll-Arbeitszeit in Stunden und Minuten mit der Formel: =C5/24
- Bei der nächsten Berechnung geht es darum, die maximal zur Verfügung stehende Pausenzeit vorzuschlagen. Dazu erzeugen wir in der Zelle E5 folgende Formel: =A9-D9
Wunschpausenzeit
Es könnte ja sein, dass Sie nicht unbedingt die ganze zur Verfügung stehende Pausenzeit benutzen möchten, sondern lieber kürzer oder länger in die Pause gehen möchten, was sich dann natürlich am Schluss auf die geleisteten Stunden auswirkt. Dazu brauchen wir eine Bedingungsformel (WENN), womit ein Pausenwunsch, wenn vorhanden, berücksichtigt wird.
Die geleisteten Arbeitsstunden (dem Chef bekanntzugeben!)
Damit nun die geleisteten Arbeitsstunden in der rot umrandeten Zelle F5 dezimal ausgegeben werden, sind noch die folgenden Formeln nötig:
Kosmetik und Schutz
Sie können nun das Blatt noch verschönern, indem Sie die Gitternetzlinien ausblenden und die Berechnungen mit einem Bild oder weissen Rechteck zudecken, oder die Schrift auf weiss stellen und die Schattierung entfernen.
Damit Sie nicht versehentlich durch Eingabe Formeln löschen, sollten Sie das Sheet schützen. Gehen Sie so vor:
Alle Zellen mit Inhalt markieren – Rechtsklick – Zellen formatieren – Schutz
Es könnte ja sein, dass Sie nicht unbedingt die ganze zur Verfügung stehende Pausenzeit benutzen möchten, sondern lieber kürzer oder länger in die Pause gehen möchten, was sich dann natürlich am Schluss auf die geleisteten Stunden auswirkt. Dazu brauchen wir eine Bedingungsformel (WENN), womit ein Pausenwunsch, wenn vorhanden, berücksichtigt wird.
- In die Zelle E9 kommt somit folgende Formel: =WENN(D5="";E5;D5)
- Jetzt, da die Pausenzeit bekannt ist, können wir die Nettoarbeitszeit in Stunden und Minuten berechnen. Dies erledigen wir bei den Berechnungen in der Zelle B9 mit der Formel: =A9-E9
Die geleisteten Arbeitsstunden (dem Chef bekanntzugeben!)
Damit nun die geleisteten Arbeitsstunden in der rot umrandeten Zelle F5 dezimal ausgegeben werden, sind noch die folgenden Formeln nötig:
- Zelle C9 =STUNDE(A9)+MINUTE(A9)/60
- Zelle F9 =STUNDE(E9)+MINUTE(E9)/60
- Zelle F5 =C9-F9
Kosmetik und Schutz
Sie können nun das Blatt noch verschönern, indem Sie die Gitternetzlinien ausblenden und die Berechnungen mit einem Bild oder weissen Rechteck zudecken, oder die Schrift auf weiss stellen und die Schattierung entfernen.
Damit Sie nicht versehentlich durch Eingabe Formeln löschen, sollten Sie das Sheet schützen. Gehen Sie so vor:
Alle Zellen mit Inhalt markieren – Rechtsklick – Zellen formatieren – Schutz
Nun lediglich die Zellen markieren, in die Sie Eingaben machen müssen, also A5 bis D5 und dann auf gleichem Weg die Sperrung für diese Zellen aufheben.
Unser Web-Tool
Sie möchten das Tool zur dezimalen Arbeitszeitberechnung gerne auf Ihrer Website zur Verfügung haben? Das hat den Vorteil, dass Sie kein Excel benötigen und überall, wo Sie online gehen können, auch Zugriff auf das Instrument haben. Die grundlegenden Überlegungen haben wir ja bereits im Excel-Tool gemacht. Sie wissen, was an Eingaben erforderlich ist und wie etwa die Rechenfunktionen ablaufen müssen. In HTML und JAVA ist nun aber die Syntax der Anweisungen etwas anders. Probieren wir's aus!
Sie benötigen vorzugsweise einen HTML-Editor (welche beliebt sind, sehen Sie hier im Register html). Sie können den Code aber auch in jedem beliebigen Textprogramm schreiben und in Ihre Website implementieren. Ich verwende hier den Editor Blue Griffon.
Wenn Sie im Editor eine neue Datei beginnen, wechseln Sie zugleich in den Dual View Mode. Das hat den Vorteil, dass Sie rechts den Code bearbeiten und links gleich die Auswirkungen sehen. Die HTML-Grundstruktur ist vorgegeben und daran müssen Sie nicht viel ändern, ausser eventuell einen Titel geben und den Autor benennen. Hier, im markierten Bereich beginnt nun Ihre Arbeit. Speichern Sie die Datei gleich unter einem individuellen Namen – bei mir ist das Kurs AZDS.
Sie benötigen vorzugsweise einen HTML-Editor (welche beliebt sind, sehen Sie hier im Register html). Sie können den Code aber auch in jedem beliebigen Textprogramm schreiben und in Ihre Website implementieren. Ich verwende hier den Editor Blue Griffon.
Wenn Sie im Editor eine neue Datei beginnen, wechseln Sie zugleich in den Dual View Mode. Das hat den Vorteil, dass Sie rechts den Code bearbeiten und links gleich die Auswirkungen sehen. Die HTML-Grundstruktur ist vorgegeben und daran müssen Sie nicht viel ändern, ausser eventuell einen Titel geben und den Autor benennen. Hier, im markierten Bereich beginnt nun Ihre Arbeit. Speichern Sie die Datei gleich unter einem individuellen Namen – bei mir ist das Kurs AZDS.
Im ersten Schritt erstellen Sie ein Script für einen addEventListener() mit DOMContentLoaded und bezeichnen die drei Variablen sinnvoll mit einer ID ("bZeit"), ("eZeit") und ("pZeit") für Beginnzeit, Endzeit und Pausenzeit.
Im nächsten Schritt schreiben Sie eine Funktion, um die Zeiten zu summieren. Darin kommen nun Ihre zuvor definierten Variablen zum Zug. Die Zeiten werden nun in Sekunden konvertiert, die Zeitdifferenz berechnet (mit .toFixed(2) wird festgelegt, dass in der Dezimalausgabe 2 Nachkommastelle sein sollen) und die IDs der Ausgaben werden auch noch hier erzeugt.
Ab Zeile 32 beginnt die Rechnerei wie zuvor in Excel, einfach etwas anders geschrieben und mit .splitTime wird die Ausgabe für die Stunden- und Minutenschreibweise definiert. Dazu schreiben Sie zwei weitere Funktionen und schliessen das Script ab.
Sie haben sicher festgestellt, dass sich auf der linken Seite in der Vorschau überhaupt nichts getan hat. Das, was Sie bis jetzt geschrieben haben, hat ja schliesslich im Hintergrund zu laufen. Doch jetzt wird sich das ändern. Sie erzeugen in html die Ein- und Ausgabefelder, sowie den sichtbaren Titel des Formulars. Das <label> type="time" beispielsweise erzeugt eine Uhr für die Zeitauswahl. Schliessen Sie body und html ab – fertig!
Speichern Sie jetzt Ihr Werk und testen Sie es in der Browservorschau. Sollte es Widererwarten nicht funktionieren, müssen Sie irgendwo einen kleinen Tippfehler gemacht haben – und suchen. Damit alles noch etwas geordneter aussieht, habe ich das Layout noch auf rechtsbündig gesetzt.
Auf der HTML-Seite haben Sie notfalls die Möglichkeit, das ganze Script nachzulesen oder herunterzuladen.
Ihre Kommentare, Fragen und Kritik zu diesem Beitrag >> hier deponieren.