Einrichten von Arbeitszeitkonten in Excel?
Hallo Zusammen,
ich stehe vor folgendem Problem, ich habe eine Zeiterfassungsdatei in Excel erstellt.
Die soweit so gut auch funktioniert, nun ist es so das wenn der Mitarbeiter Urlaub einträgt soll bei der Arbeitszeit auch 8 Stunden angezeigt werden, da dieser ja bezahlt wird, genau so ist es mit Feiertagen und Krank. Das wäre ja mit einer verschachtelten Wenn Funktion möglich, ich bekomme es aber irgenwie nicht hin.
Desweiteren soll es dem Mitarbeiter möglich sein, Überstunden als Abbau nehmen zu können, eine Übersicht der aktuellen Überstunden ist in dieser Liste ersichtlich, beudetet wenn der Mitarbeiter in die Spalte Frei einträgt, sollen diese automatisch abgezogen werden.
Ich hoffe es ist halbwegs verständlich, was hier hier mein Problem ist.
Für eure Hilfe bin ich euch jetzt schon dankbar!
4 Antworten
Hallo,
G6:
=WENN(ODER(C6="Feiertag";C6="Urlaub";C6="Krank");8/24;WENN(C6="frei";0;E6-D6-F6)
H6:
=WENN(UND(WOCHENTAG(A6;2)<6;ODER(NICHT(ISTLEER(C6));NICHT(ISTLEER(D6))));8/24;0)
I6:
=G6-H6
Und gleich noch eine Anmerkung, falls das reelle Zeiten sind, hast du ein Problem mit dem Arbeitszeitgesetz, was die Pausenzeiten betrifft.
LG, Chris
Edit: Format muss Uhrzeit sein, Grundeinstellung auf 1904-Datum
Wieso soll Excel in Spalte G bei frei AB8-8 rechnen?
In Spalte G steht die tatsächlich geleisteten Stunden des Tages... im Fall von frei also 0
Bei E6-D6-F6*24 solltest du übrigens noch bedenken, dass Excel ganz regulär Punkt vor Strich rechnet und somit nur F6 mit 24 multipliziert wird. E6-D6-F6 muss in Klammern.
Weil AB8 die gesammelten Überstunden sind, die ja dann abgebummelt werden mit frei
bin echt am verzweifeln, selbst wenn ich jetzt "frei" erst mal weg lasse, funktioniert es nicht.
Urlaub usw. funktoniert jetzt da tauchen dann auch 8 bezahlte Stunden auf, allerdings wenn ich eine Arbeitszeit eingebe kommt eine Fehlermeldung.
So lautet die Formel:
=WENN(ODER(C6="Feiertag";C6="Urlaub";C6="Krank");8;)=(E7-D7-F7)*24
Diese Antwort hilft mir schon einmal weiter, vielen dank!
Mit den Feiertagen, Urlaub und Krank funktioniert es soweit, jetzt ist nur noch das Problem mit den Überstunden.
Meine Formel sieht jetzt so aus:
=WENN(ODER(C6="Feiertag";C6="Urlaub";C6="Krank");8;WENN(C6="frei");AB8-8;WENN(C6="";(E6-D6-F6*24))))
Wo ist der Fehler?
=WENN(C6="Feiertag";8;WENN(C6="Urlaub";8;WENN(C6="frei";8;)+E6-D6-F6))
Wenn Leute ihre Überstunden nehmen, nehmen sie dann immer den ganzen Tag?
Zur 1. Thematik wäre das vielleicht hilfreich für dich:
=WENN(C3="Feiertag";8;WENN(C3="Urlaub";8;WENN(C3="Krank";8;WENN(C3="Frei";8;D3+E3))))
zunächst mal: Von der Umstellung aufs 1904-Datum rate ich PRINZIPIELL ab: da kann soviel durcheinander kommen, das war m.E. ein Irrweg von MS.
Arbeitstage ohne Sa sind =Rest(A1;7)>=2
Hat den Vorteil, dass nicht Gebiets-abhängig, im Ggs. zu Wochentag. (für Israel und die Muslimisch-Kalender-Staaten gelten andere WE-Tage, vermutlich irrelevant)
Willst Du wirklich die langen Namen eintragen (lassen)? bedenke die Summierung der Tippzeit für viele MA und Tage! Verwende Kürzel: U, K, F, frei. F wird dadurch eine einheitliche Bezeichnung, könntest ja weit rechts eine Feiertag-Namensspalte führen. Versuchs mal damit:
G6 =(Rest(A1;7)>=2)*((c6="")+(c6="u")+(c6="k")+(c6="f"))*8+(f6-e6)*24 , runterziehen.
AB6 = Summe(G6:G37)-Summenprodukt((C6:C37="frei")*8) (statt frei vllt auch ü für Überstunden-Abbau?)
[das ODER entspricht bei diesen Logik-Formeln einer Summe, hier einer einfachen, weil nur eines der Kürzel drinstehen kann bzw gar keins: ="", während das * einem UND entspricht, hier kombiniert]
Die Spalte H (Soll) fließt hier gar nicht ein, du kannst aber anstatt *8 auch *H6 verwenden, sollte es zB halbe Feiertage geben (die gabs ja mal)
Ein Fehl-Eintrag am Wochenende bleibt schadlos, da die Rest-Bedingung dort 0 ergibt, ein zeilenversetzter Zeiteintrag am Wochenende auch, aber die Korrektur am entsprechenden Werktag fehlt natürlich!
Habe dein Modell jetzt nicht nachgestellt, das war eine "Trockenübung" hoffentlich ohne Denk- oder Syntax-Fehler
halt, das mit dem zeilenversetzten Zeiteintrag stimmt nicht, denn der hat den Faktor Rest() ja nicht! Wäre aber mit einer weiteren Klammer nach dem ersten * und am Ende problemlos einbeziehbar.
Ach ja, negative Zeiten: xl rechnet durchaus damit, stellt sie aber als Gartenzaun dar. dafür ein nächster Kommentar (wg Korrekturzeit-Ablauf)
irgendwas vergisst man immer, ich hier die Pausen in Spalte F, und ich hab die Anwesenheitszeiten um eine Spalte nach rechts verschoben. Ich versuchs gleich zu korrigieren.
Aber erst noch: das negative Zeiten-Problem scheint sich bei dir zu erübrigen, durch die Umwandlung in normale Zahlen tritt das nicht auf. Du musst nur die Zellen definitiv auf Dezimalzahl formatieren, xl setzt sonst häufig selbsttätig das Zeitformat. Hier die jetzt hoffentlich richtige, korrigierte Fassung
G6 =(Rest(A1;7)>=2)*(((c6="")+(c6="u")+(c6="k")+(c6="f"))*8+(e6-d6-f6)*24)
runterziehen.
AB6 =Summe(G6:G37)-Summenprodukt((C6:C37="frei")*(e6:e37-d6:d37))
[wenn "frei" tageweise unterschiedliche Stunden abbuchen soll, die dann in e:f natürlich eingetragen werden müssten. Optional wäre das zwar auch möglich (Standard:=8, wenn abeichend: Eintrag), aber deutlich umständlicher. ggf nachhaken!
Diese Antwort hilft mir schon einmal weiter, vielen dank!
Mit den Feiertagen, Urlaub und Krank funktioniert es soweit, jetzt ist nur noch das Problem mit den Überstunden.
Meine Formel sieht jetzt so aus:
=WENN(ODER(C6="Feiertag";C6="Urlaub";C6="Krank");8;WENN(C6="frei");AB8-8;WENN(C6="";(E6-D6-F6*24))))
Wo ist der Fehler?