Berechnung von Datums-Differenzen und Arbeitstagen

In diesem Beitrag stelle ich Dir verschiedene Varianten vor, wie Du die Differenz oder gar die Arbeitstage (Wochentage) zwischen bestimmten Start- und Enddaten ermitteln kannst. Wir ziehen bei der Arbeitstag-Berechnung zudem die Wochenenden oder allfällige Feiertage in Betracht, was je nach Anwendungsfall einen weiteren Nutzen bietet.

Datumsdifferenzen (DATEDIF)

Hinter jedem Datum steckt ein Zahlenwert. Dies wird ersichtlich, wenn man das Zellenformat eines eingetragenen Datums auf "Zahl" oder "Standard" umstellt. Somit kann mit einer einfachen Differenz (=A2-A1) eine Differenz in Anzahl Tagen ermittelt werden. Dies lässt bereits einiges zu. Bitte stelle Dir hier jeweils die Frage, was Du genau mit der Differenz aussagen möchtest - denn allenfalls musst Du Dein Ergebnis um +1 erhöhen, falls sowohl Start- wie auch Enddatum dazugezählt werden sollen. Die Differenz aus 11.05.2021 und 08.05.2021 ergibt demnach "3".

Wer in Excel etwas auf "Entdeckungstour" gehen möchte, kann durch Eingabe von "=" und einem beliebigen Buchstaben viele verfügbaren Formeln finden. Zur Ermittlung von Datumsdifferenzen empfehle ich einen "Geheimtipp", der sich jedoch nicht in diesen Formeln finden lässt. Es handelt sich um "=DATEDIF", welche in Excel nach wie vor vorhanden ist, um Berechnungen aus "Lotus 1-2-3" (dem Vorgänger von Excel) zu unterstützen. Die Syntax der Formel lautet:

=DATEDIF(Startdatum; Enddatum; Einheit)

Die ersten beiden Argumente sind selbsterklärend, doch die Angabe zur "Einheit" benötigt etwas Hintergrundwissen (und birgt weiteres Potenzial). Da es sich um eine nicht übersetzte Formel handelt, sind für "Einheit" angelsächsische Eingaben notwendig. Es lässt sich mit der Angabe "D" deshalb die Datumsdifferenz in Tagen (Days) ermitteln. Die Angabe "M" würde die Monate (Months) und "Y" die Anzahl Jahre (Years) als Ergebnis anzeigen. Man könnte also mit der Verbindung von Text- und Formeln einige spannenden Informationenaufführen ("Zwischen den beiden Daten liegen x Jahre, y Monate und z Jahre.").

Neben diesen "eindimensionalen" Angaben bietet sich zudem die Möglichkeit, beispielsweise die Jahre oder Monate zweier Daten zu ignorieren. Ausgehend vom 08.01.2020 bis zum 11.05.2021 könnte man demnach mit der Angabe "MD" nur die Anzahl Tage zwischen dem "11." und dem "8." eines Monats ermitteln - Monats- oder Jahresangaben werden somit ignoriert. Mit "YD" hingegen wird die Jahresangabe ignoriert, was im genannten Beispiel (8. Januar bis 11. Mai) 124 Tage ergibt. Die dritte Option wäre "YM", bei dem die Differenz der Monate zwischen dem Aus- und dem Enddatum ermittelt wird, während Tage und Jahre ignoriert werden.

NETTOARBEITSTAGE

Die obigen Beispiele gehen jeweils von 7 Tagen in der Woche aus. Im Geschäftsalltag möchte man vielleicht eher die Arbeitstage berücksichtigen. Ohne aufwändig die Wochentage aller Daten abzuziehen (Die Formel =TEXT(Datum,"TTTT") zeigt Dir übrigens den Wochentag an) kann eine einzige Formel zur Anwendung kommen: "NETTOARBEITSTAGE". Dies ist die Syntax der Formel:

=NETTOARBEITSTAGE(Ausgangsdatum; Enddatum; [Freie_Tage])

Analog dem ersten Beispiel mit der simplen Datumsdifferenz benötigt es auch hier zwei Datumsangaben. Die Angabe zu den "freien Tagen" (Feiertage) ist optional. Die nachfolgende Abbildung illustriert die zwei unterschiedlichen Herangehensweise basierend auf dem Startdatum 08.05.2021 (Samstag) und 11.05.2021 (Dienstag):

Datumsdifferenzen

Über die "Differenz" kann man sich wie oben erwähnt natürlich streiten und mit +1 eine Differnez von 4 Tagen erhalten (sollten jeweils Ganztage gezählt werden). Mit der Formel "NETTOARBEITSTAGE" werden die Wochenend-Tage ignoriert. Für den Freitag, 7. Mai bis 11. Mai würden wir ein Resultat von "3" erhalten.

Nehmen wir einen Feiertag mit in unsere Kalkulation: Den Donnerstag, 13. Mai 2021 (Auffahrt). Die Arbeitswoche vom 10. Mai sollte demnach 4 Arbeitstage beinhalten. Ohne jegliche Angaben würde Dir die Formel jedoch "5" als Resultat zurückgeben. Binde hierzu eine Tabelle mit beliebigen Datumswerten an (stelle sicher, dass nur Daten darin enthalten sind - also ohne Tabellenüberschriften oder ähnlichem). Im nachfolgenden Screenshot gehen wir vom 10. Mai aus (Zelle "B2") und ermitteln die Anzahl Arbeitstage bis und mit Freitag, 14. Mai (Zelle "B3") unter Berücksichtigung einer etwas umfangreicheren Feiertags-Liste im Bereich "E2 bis E4":

Nettoarbeitstage_Feiertage

Als Resultat erhält man dadurch "4" Nettoarbeitstage.

Beliebige Wochenende mit NETTOARBEITSTAGE.INTL

Eine letzte Zusatzoption bietet Dir die Formel "NETTOARBEITSTAGE.INTL". Hierin eingeschoben ist zudem noch die Angabe zu den Wochenenden, welche individueller gestaltet werden können - es lassen sich sowohl zweitägige Wochenenden oder Einzeltage verwenden, was eine Vielzahl an Optionen zur Berechnung von Arbeits- und Einsatzplänen etc. bietet:

Nettoarbeitstage_Wochenende

Konfigurationsdatei in Excel (Config)

In einem älteren Beitrag habe ich einst aufgeführt, dass ein Blatt "Parameter" zum professionellen Präsentieren von Excel-Tabellen und -Reports hilfreich ist (siehe diesen Blogeintrag). Wichtige Angaben oder Inhalte von Drop-Down-Listen werden als Einträge auf einem (ausgeblendeten) Tabellenblatt hinterlegt. Eine Konfigurationsdatei (Config) ist dem sehr ähnlich, die hier vorgestellten Ansätze könntest Du durchaus auch in einem "Parameter"-Sheet hinterlegen.

Eine Konfigurationsdatei dient dazu, an einem zentralen Ort bestimmte Einstellungen vorzunehmen, es ist aus Wartungssicht deshalb deutlich komfortabler, als Anpassungen in diversen Formeln, Tabellenblättern oder VBA-Codezeilen vorzunehmen. Insbesondere bei grösseren Dateien oder Skripten ist es je länger je unübersichtlicher, eine Config-Datei ist dort empfohlen. Man bindet also möglichst viele übergreifenden Angaben, die allenfalls ändern könnten (manuell geändert werden müssen) in eine Konfig-Datei ein. Ein weitergehendes Beispiel könnten Dateipfade sein - respektive dynamische Pfade und Ordnerverzeichnisse. Stelle Dir vor, Du teilst Deine Datei mit einigen Arbeitskollegen. Je nach dem, wenn Ihr das File lokal öffnet, befindet sich die Datei jedoch in einem anderen Verzeichnis. Wenn man neben dem aktuellen File auch eine zweite Datei im Stammverzeichnis ansprechen möchte (z.B. eine Input- oder Vormonats-Datei), dann führen starre Pfade zu Fehlern. Im Beitrag "Dateipfad mit einer Formel darstellen" sind die Grundlagen aufgeführt, wie ein dynamischer Pfad hinterlegt werden kann.

Hier führe ich Dir eine Beispieldatei auf, die ein Blatt "Config" enthält:

Config- Konfigurations-Datei.xlsx

Es werden Variablen definiert, die allerdings im Rahmen dieses Blogs nicht weiter verwendet werden. Du könntest diese entsprechend einem Diktionär (Variable des Typs "Dictionary") einlesen - insbesondere im VBA-Kontext. Du kannst aber auch selber simplere Definitionen mit Zellbezügen anstellen. Relevant für den Excel-Teil an und für sich ist der Inhalt in der Spalte B: Dort sind unterschiedliche Varianten der Datei oder des Stammverzeichnisses (Root Path) direkt ausgelesen. Je nach dem, wo die Datei abgespeichert ist, sind andere Werte (und dort relevante Gegebenheiten) eingetragen.

Unterstützung im Homeoffice: Synchrones Scrollen

Wer kennt es nicht: Inhalte aus zwei verschiedenen Dateien müssen entweder miteinander verglichen oder in die jeweils andere Datei übertragen werden. Hilfreich dabei - insbesondere sofern man keine zwei Bildschirme hat, was womöglich gerade bei der aktuellen Homeoffice-Pflicht der Fall sein könnte - ist die "Alle Anordnen"-Funktion unter dem Menüpunkt "Ansicht". Dies erlaubt es, die bereits geöffneten Dateien neben- oder übereinander anzeigen zu lassen (vertikal / horizontal). Somit sind die Informationen mehrerer Tabellen auf einen Blick ersichtlich, ohne dass man von Fenster zu Fenster springen muss. Unten aufgeführt sind zwei unterschiedliche Tabellen, vertikal angeordnet:

SynchronesScrollen

Dieser Beitrag trägt jedoch den Titel "Synchrones Scrollen" - was bedeutet das? Sind zwei Fenster neben- respektive übereinander angeordnet, muss man die jeweilige Datei aktivieren, um dort navigieren und scrollen zu können. Unter "Ansicht" → "Synchrones Scrollen" ("Synchroner Bildlauf" in älteren Excel-Versionen) lässt sich jedoch eine Funktion aktivieren, um direkt auf beiden Tabellen zu navigieren. Stelle sicher, dass auch der Button "Nebeneinander anzeigen" oberhalb aktiv ist!

NebeneinanderAnzeigen

Der synchrone Bildlauf funktioniert dann sowohl mit der Bildlaufleiste (scrollen), wie auch, wenn Du mit den Pfeiltasten innerhalb der Daten navigierst!

SynchronesScrollen2