Arbeitszeitberechnung (keine Nullwerte)

Arbeitszeitberechnung, Nullwerte unterdrücken

Eine mehr oder weniger typ­is­che Arbeit­szeit-Berech­nung (ohne wesentliche For­matierung, ohne Pausen und hier sehr spar­tanisch) sieht beispiel­sweise so aus:

Bis auf die Überschrift fast unformatierte Tabelle

Bis auf die Über­schrift fast unfor­matierte Tabelle

In Spalte D wird die Arbeit­szeit mit fol­gen­der Formel berech­net: =C2-B2 und solange keine Eingaben gemacht wer­den, ste­ht in Spalte D auch das Ergeb­nis, dass 0:00 Stun­den gear­beit­et wor­den sind. – Das mag ja noch ange­hen, denn es stimmt ja auch vom Prinzip her. Es kann aber irri­tieren, wenn auch an Woch­enen­den oder anderen freien Tagen dieser Wert dort ste­ht. Gle­ich­es gilt für Tage, die es in dem Monat gar nicht gibt.

So wirk­lich unschön wird es, wenn in der Frühe der Arbeits­be­ginn schon eingegeben wird und (natür­lich) das Ende noch offen ist:

Das Arbeitsende ist noch nicht eingetragen

Das Arbeit­sende ist noch nicht einge­tra­gen

Die berech­nete Arbeit­szeit wird als „Garten­za­un” dargestellt. Das ist im Prinzip auch logisch, denn eine leere Zelle wird als Null gew­ertet und 0:00–8:50 ergibt ein neg­a­tives Resul­tat. Und Neg­a­tiv-Zeit­en wer­den in Excel (Win­dows) grund­sät­zlich in dieser Form dargestellt. Mac-User ken­nen dieses Prob­lem übri­gens nicht. Es gibt ver­schiedene Wege, das mit den Null-Werten zu umge­hen. Teils per Zahlen­for­mat, über die bed­ingte For­matierung oder mit ein­er entsprechen­den Formel.


Es existiert eine Datei für die Arbeit­szeit­berech­nung, welche für diese Übung etwas mod­i­fiziert wurde. Laden Sie dieses File herunter, um die Erk­lärun­gen bess­er nachvol­lziehen zu kön­nen. Beacht­en Sie bitte: Die entsprechen­den Änderun­gen beziehen sich auss­chließlich auf Spalte E (Arbeit­szeit). Andere Spal­ten sind in der For­matierung belassen wor­den, die für den entsprechen­den Beitrag sin­nvoll war. Keine Regel ohne Aus­nahme, aber die kommt später und wird detail­liert beschrieben.

▲ nach oben …

Der Urzustand

Die Zeilen 6:17 sind so belassen wor­den, wie sie in der Ursprungs­datei vorhan­den sind. Unter der Zeile 17 (und weit­eren Zeilen) sind von mir Trennstriche einge­fügt. Sie dienen auss­chließlich der besseren Über­sicht der „Blöcke”, welche den Monat in Arbeitss­chritte für diese Übung unterteilen.

In den Zeilen 18:21 ste­ht die typ­is­che, ganz ein­fache Formel; die einzige For­matierung beste­ht hier darin, dass eine Uhrzeit Typ hh:mm dargestellt wird. In E20 ist (natür­lich) das Ergeb­nis 0:00, was nicht unbe­d­ingt stören muss. Allerd­ings: Es war der freie Sam­stag. Und in E21 wird deut­lich, dass neg­a­tive Zeit­en in der Win­dows-Ver­sion nicht „sauber” dargestellt wer­den: ###. Und das hat natür­lich nichts mit dem arbeits­freien Son­ntag zu tun … 😉 Ab Zeile 22 gibt es noch weit­ere Beson­der­heit­en; darauf wird dann jew­eils gezielt einge­gan­gen.

▲ nach oben …

Bedingte Formatierung

Eine dur­chaus pro­bate Meth­ode, Neg­a­tivergeb­nisse und Null­w­erte bei Zeit­en unsicht­bar zu machen, ist die Bed­ingte For­matierung. Der Bere­ich E22:E25 ist ein Beispiel dafür. Die Optik stimmt (erst ein­mal), die kor­rek­ten Ergeb­nisse ste­hen den­noch in den Zellen drin. – Das große Aber: Sie kön­nen den so behan­del­ten Zellen keine indi­vidu­elle Hin­ter­grund­farbe „ver­passen”. Und was vielle­icht nicht so ganz gravierend ist: Manche Druck­er haben die Möglichkeit, jede Farbe (ein­schließlich weiß) oder auch Texte schwarz zu druck­en. Da kommt der „Schwindel” wieder zum Vorschein 😎 .

Formel-Lösung (1)

Wenn solch ein Prob­lem per Formel gelöst wird, dann ist es in den meis­ten Fällen eine Lösung, welche dieser in E28 ähnelt: =WENN(B28<C28;C28-B28-D28;""). Das kann aber schief gehen, wenn eine weit­ere Formel auf das Ergeb­nis zugreift und eine Zahl erwartet. G28 und H28 zeigen das ganz deut­lich auf. Und natür­lich ist in den bei­den Spal­ten auch in Zeile 37 der gle­iche Fehler­w­ert. Übri­gens: Die Mel­dung #WERT! besagt, dass ein Wert erwartet wird und ein solch­er nicht gefun­den wurde. Hier ist es der Leer­String "", der ja ein Text der Länge null ist. Wäre die Zelle wirk­lich leer, dann würde die Zelle als Null gew­ertet aber den­noch leer dargestellt wer­den.

▲ nach oben …

Formel-Lösung (2)

Ehe Sie sich Hoff­nun­gen machen: Es bleibt beim Leer­String als Ergeb­nis, mit all seinen Nachteilen. Aber die Formel ist vielle­icht etwas trans­par­enter und für Sie unter Umstän­den auch leichter anpass­bar: =WENN(ANZAHL(B29:C29)>1;C29-B29-D29;""). Wenn also min­destens die bei­den ersten Spal­ten mit Zahlen aus­ge­füllt sind, dann soll berech­net wer­den, son­st wird "" zurück gegeben.

Den­noch gibt es eine sin­nvolle Formel-Lösung, wenn auch weit­er­führend. Dei Fehler­mel­dun­gen taucht­en ja in den bei­den Dif­ferenz-Spal­ten auf, also Spal­ten G:H. Dort kön­nen Sie näm­lich auch anset­zen, um die Fehler­mel­dung zu unter­drück­en. In G29 und auch H29 sehen Sie, dass die Formel eine andere ist als in der Zeile darüber. Hier ste­ht (im Beispiel Spalte G): =WENN(E29<>"";(E29-F29)*24;"") und nicht nur die ein­fache Berech­nung. Es wird erst abge­fragt, ob der Inhalt der Spalte E kein Leer­String ist; dann wird berech­net, son­st wird auch hier ein Leer­String aus­gegeben. Ein klein­er Umweg, aber eine dur­chaus trag­bare Lösung.

▲ nach oben …

Per Zahlenformat

Die wohl ele­gan­teste Lösung ist, das Zahlen­for­mat in den entsprechen­den Bere­ichen anzu­passen. Die Berech­nun­gen erfol­gen so, dass dur­chaus Null­w­erte als Ergeb­nis her­auskom­men kön­nen. Aber das Zahlen­for­mat ist so eingestellt, dass nur pos­i­tive Werte angezeigt wer­den. Und das bedeutet, dass auch Neg­a­tiv-Zeit­en wie beispiel­sweise am 26. Feb­ru­ar in Spalte E nicht als „Lat­ten­za­un” angezeigt wer­den.

Sehen Sie sich ein­mal das Zahlen­for­mat in E30 an. Es ist ein benutzerdefiniertes For­mat und lässt nur pos­i­tive Werte zu: hh:mm;;. Auch Nullen bzw. der Wert 0 als Ergeb­nis wer­den unter­drückt. Den­noch kön­nen mit dem Inhalt der Zelle weit­ere Berech­nun­gen durchge­führt wer­den.

Wenn Sie diese For­matierung in die Zeilen 31:35 über­tra­gen, wer­den Sie erken­nen, was ich meine. Das Minus-Ergeb­nis vom 26. Feb­ru­ar wird unsicht­bar, wie auch die restlichen Zeilen. Und schauen Sie sich ein­mal die Formel in E32 an. Sie ist fast mit jen­er in E28 iden­tisch, aber eben nur fast. Statt des Leer­strings wird nun eine Null zurück gegeben. Und da die Null eine Zahl ist, kommt es trotz son­st gle­ich­er Bedin­gun­gen nicht zur Fehler­mel­dung in den Spal­ten G:H.

▲ nach oben …

Resümee

Ide­al­er­weise ver­wen­den Sie eine Formel zur Berech­nung, welche Ihnen 0 zurück gibt, wenn noch nicht alle Zeit­en eingegeben wor­den sind oder nicht gear­beit­et wurde. Das direkt hierüber aufgezeigte Zahlen­for­mat sorgt für ein „besseres” Ausse­hen der Dat­en.

Soll zwin­gend eine Pause eingegeben wer­den, erforder­lichen­falls auch 0:00, dann ist die Formel mit der ANZAHL()-Funk­tion bess­er ein­set­zbar. In dem Fall muss der Wert für die Anzahl der Werte auf >2 geän­dert wer­den. Ist dann keine Pausen­zeit eingegeben, erfol­gt keine Berech­nung bzw. die Arbeit­szeit wird auf 0:00 geset­zt. Mit einem WENN()-Kon­strukt kön­nte hier auch ein Default-Wert einge­set­zt wer­den.

▲ nach oben …

Rück­mel­dun­gen / Feed­back gerne per Mail an mich (G.Mumme@Excel-ist-sexy.de)

Hat Ihnen der Beitrag gefallen?
Erleichtert dieser Beitrag Ihre Arbeit?

Dann würde ich mich über einen Beitrag Ihrer­seits z.B. 2,00  freuen … (← Klick mich!)

Dieser Beitrag wurde unter Datum und Zeit, Formatierung, Ohne Makro/VBA, Stundenabrechnung, Wege nach Rom abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.