Nettoarbeitstage mit beliebigen Wochenende-Parametern

In einem vormaligen Beitrag "Berechnung von Datums-Differenzen und Arbeitstagen" wurde Euch die Formel "NETTOARBEITSTAGE" nähergebracht, um die Anzahl Tage (oder eben Netto-Arbeitstage) zwischen zwei Daten zu ermitteln. Mit der erweiterten Formel "NETTOARBEITSTAGE.INTL" lassen sich zudem Wochenende-Parameter konfigurieren. Diese Formel wurde ebenfalls im oben verlinkten Beitrag illustriert. Dabei lassen sich die nachfolgenden Standard-Wochenende-Parameter hinterlegen:

Nettoarbeitstage_Wochenende

Beliebige Wochenende-Parameter

Die obigen Wochenende-Parameter sollten in den meisten Anwendungsfällen genügen; es sind jeweils zwei aufeinanderfolgende Tage sowie jeder einzelne Wochentag im Falle einer 6-Tage-Woche auswählbar. Es besteht jedoch eine Möglichkeit, die Formel beliebig auszubauen und zu konfigurieren. Das nachfolgende leere Schema soll Dir helfen, die notwendige Eingabe besser zu interpretieren:

 WochenendeParameter_Schema

Wenn wir anstelle des Wochenende-Parameters "1 - Samstag, Sonntag" oder ähnlich die nachfolgende, 7-stellige Zeichenfolge als Text angeben, kann dies als Wochenende interpretiert werden:

"0000000"

Die obige Zeichenfolge würde bedeuten, dass gar kein Tag als Wochenende gilt, es würde also die Datumsdifferenz von Ausgangs- und Enddatum voll gerechnet werden. Analog unserem obigen Schema würde für Samstag und Sonntag demnach gelten:

"0000011"

Eine "1" entspricht dabei einem gültigen Wert, der von der Datumsdifferenz abgezogen werden soll (und somit eben nicht in die Netto-Arbeitstage-Berechnung miteinfliesst). Du kannst jede mögliche Kombination von Wochenende konfigurieren; beispielsweise ein verlängertes Wochenende (Freitag, Samstag, Sonntag und Montag) via:

"1000111"

Beispiel und Anwendungsfälle

Ein konkreter Anwendungsfall der "Netto-Arbeitstage" stellt die (Arbeits-)Zeiterfassung dar. Eine Vorlage findest Du in diesem Beitrag: Vorlage Arbeitszeiterfassung. Für die Zeiterfassung oder auch für die Schichtenplanung könnten individuelle Einträge in der Mitarbeiterkartei zur Anwendung kommen, um längere Arbeits-Zyklen korrekt abzubilden oder zu berechnen.

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.