Einrichten von Arbeitszeitkonten in Excel?

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

xxxjanaxx 
Beitragsersteller
 16.05.2019, 09:58

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?

Funfroc  16.05.2019, 10:31
@xxxjanaxx

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.

xxxjanaxx 
Beitragsersteller
 16.05.2019, 15:08
@Funfroc

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?

KHSchindelar  16.05.2019, 15:05

=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

Iamiam  16.05.2019, 21:55

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)

Iamiam  16.05.2019, 22:17
@Iamiam

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!