Excel Werktage-Rechner (inkl. Samstag)
Berechnen Sie präzise Werktage zwischen zwei Daten inklusive Samstag. Ideal für Projektplanung, Lieferzeiten und Arbeitszeitberechnungen.
Excel mit Datum rechnen: Werktage inkl. Samstag – Der umfassende Leitfaden
Die Berechnung von Werktagen in Excel unter Einbeziehung von Samstagen ist eine häufige Anforderung in der Projektplanung, Logistik und Personalverwaltung. Dieser Leitfaden zeigt Ihnen nicht nur, wie Sie die Excel-Funktion NETTOARBEITSTAGE.INTL optimal nutzen, sondern auch, wie Sie regionale Feiertage berücksichtigen und komplexe Datumsberechnungen durchführen.
1. Grundlagen der Werktagsberechnung in Excel
Excel bietet mehrere Funktionen für Datumsberechnungen:
NETTOARBEITSTAGE– Berechnet Werktage zwischen zwei Daten (Montag-Freitag)NETTOARBEITSTAGE.INTL– Erweitert um benutzerdefinierte WochenendenTAGE– Einfache Differenz zwischen zwei DatenWOCHENTAG– Gibt den Wochentag als Zahl zurück
Für die Berechnung inklusive Samstag ist NETTOARBEITSTAGE.INTL die Funktion der Wahl, da sie flexible Wochenenddefinitionen ermöglicht.
2. Schritt-für-Schritt-Anleitung: Werktage mit Samstag berechnen
- Grundformel für Werktage inkl. Samstag:
=NETTOARBEITSTAGE.INTL(Startdatum; Enddatum; [Wochenende]; [Feiertage])Der Parameter
[Wochenende]definiert, welche Tage als Wochenende gelten. Für Montag-Samstag als Werktage (nur Sonntag als Wochenende):=NETTOARBEITSTAGE.INTL(A2; B2; 11)Der Wert
11steht für “nur Sonntag ist Wochenende” (Binär: 100000000001). - Feiertage berücksichtigen:
Erstellen Sie eine Liste mit Feiertagen in einem Bereich (z.B. D2:D20) und referenzieren Sie diesen:
=NETTOARBEITSTAGE.INTL(A2; B2; 11; D2:D20) - Dynamische Feiertagsberechnung:
Für regionale Feiertage können Sie die Funktion
ARBEITSTAGmit bedingten Formeln kombinieren:=WENN(ODER(A2=DatumOstern(); A2=DatumPfingsten()); 1; 0)
3. Fortgeschrittene Techniken für Profis
| Technik | Anwendung | Excel-Formel |
|---|---|---|
| Dynamische Wochenenddefinition | Unterschiedliche Wochenenden pro Projekt | =NETTOARBEITSTAGE.INTL(A2;B2;WENN(C2=”Standard”;11;1)) |
| Feiertagsautomatisierung | Automatische Berechnung beweglicher Feiertage | =OSTERMONDAT(JAHR(A2))+1 (Ostermontag) |
| Mehrfachregionen | Berechnung für verschiedene Bundesländer | =WENN(D2=”BY”;NETTOARBEITSTAGE.INTL(…;BY_Feiertage);…) |
| Visualisierung | Farbliche Kennzeichnung von Werktagen | Bedingte Formatierung mit =WOCHENTAG(A2;2)<7 |
Für die automatische Berechnung beweglicher Feiertage wie Ostern oder Pfingsten können Sie auf die folgenden Formeln zurückgreifen:
'Ostersonntag (Gauß-Algorithmus)
Function Ostern(Jahr As Integer) As Date
Dim a As Integer, b As Integer, c As Integer
Dim k As Integer, m As Integer, s As Integer
Dim d As Integer, e As Integer, n As Integer
a = Jahr Mod 19
b = Jahr \ 100
c = Jahr Mod 100
k = b \ 4
m = (8 * b + 13) \ 25
s = b - k - m
n = (19 * a + s + 15 - m) Mod 30
e = (a + 11 * n) \ 319
Ostern = DateSerial(Jahr, 3, n - e + 1) + (n < 28)
End Function
4. Vergleich: Excel vs. Alternative Methoden
| Methode | Vorteile | Nachteile | Genauigkeit |
|---|---|---|---|
| Excel NETTOARBEITSTAGE.INTL | Einfach zu verwenden, integriert in Excel | Begrenzte Feiertagslogik, keine dynamischen Regionen | 95% |
| VBA-Skripte | Volle Kontrolle, komplexe Logik möglich | Wartungsaufwand, Sicherheitsbedenken | 100% |
| Power Query | Gute Integration, wiederverwendbar | Lernkurve, Performance bei großen Datenmengen | 98% |
| Externe APIs | Immer aktuelle Feiertagsdaten, regionale Genauigkeit | Abhängigkeit von externen Diensten, Datenschutz | 99% |
| JavaScript (wie dieser Rechner) | Plattformunabhängig, interaktiv | Keine Excel-Integration, manuelle Dateneingabe | 97% |
5. Praktische Anwendungsbeispiele
- Lieferzeitberechnung:
Ein Online-Shop möchte Kunden die voraussichtliche Lieferzeit anzeigen, wobei Samstage als Liefertage gelten, Sonntage und Feiertage jedoch nicht.
=WENN(NETTOARBEITSTAGE.INTL(HEUTE();A2;11;Feiertage)<=5;"Schnelllieferung"; WENN(NETTOARBEITSTAGE.INTL(HEUTE();A2;11;Feiertage)<=10;"Standardlieferung"; "Langzeitlieferung")) - Projektplanung mit Meilensteinen:
Berechnung von Pufferzeiten zwischen Projektphasen unter Berücksichtigung regionaler Feiertage.
=MAX(0;NETTOARBEITSTAGE.INTL(Phasenende;Meilenstein;11;Feiertage)-Puffer) - Urlaubsplanung:
Berechnung der tatsächlich verfügbaren Arbeitstage unter Abzug von Urlaubstagen und Feiertagen.
=NETTOARBEITSTAGE.INTL(Urlaubsbeginn;Urlaubsende;11;Feiertage)-Urlaubstage
6. Häufige Fehler und deren Lösung
- #WERT!-Fehler: Überprüfen Sie, ob beide Datumsangaben gültig sind und das Enddatum nach dem Startdatum liegt.
- Falsche Wochenenddefinition: Der Parameter 11 (nur Sonntag) wird oft mit 1 (Samstag/Sonntag) verwechselt.
- Fehlende Feiertage: Bewegliche Feiertage wie Ostern müssen jährlich aktualisiert werden.
- Zeitzonenprobleme: Bei internationalen Berechnungen die Zeitzonen der Standorte berücksichtigen.
- Schaltjahre: Die Funktion berücksichtigt Schaltjahre automatisch, aber benutzerdefinierte Logik kann Fehler enthalten.
7. Optimierung für große Datenmengen
Bei der Verarbeitung von Tausenden von Datumsberechnungen sollten Sie folgende Techniken anwenden:
- Array-Formeln: Nutzen Sie Matrixformeln für bereichsweite Berechnungen.
- Power Query: Transformieren und berechnen Sie Daten vor der Einbindung in Excel.
- Pivot-Tabellen: Aggregieren Sie Ergebnisse für Übersichtsberichte.
- VBA-Optimierung: Deaktivieren Sie Bildschirmaktualisierungen während der Berechnung.
- Caching: Zwischenspeichern Sie häufig verwendete Feiertagslisten.
Für besonders komplexe Szenarien empfiehlt sich die Erstellung einer benutzerdefinierten Funktion in VBA:
Function WerktageInklSamstag(StartDatum As Date, EndDatum As Date, _
Optional Feiertage As Range = Nothing) As Long
Dim Tage As Long, i As Long
Dim AktuellesDatum As Date
Dim IstFeiertag As Boolean
Tage = 0
AktuellesDatum = StartDatum
Do While AktuellesDatum <= EndDatum
'Prüfe auf Wochentag (1=Sonntag, 2=Montag, ..., 7=Samstag)
If Weekday(AktuellesDatum, vbSunday) <> 1 Then
'Prüfe auf Feiertag
IstFeiertag = False
If Not Feiertage Is Nothing Then
For i = 1 To Feiertage.Rows.Count
If Feiertage.Cells(i, 1).Value = AktuellesDatum Then
IstFeiertag = True
Exit For
End If
Next i
End If
If Not IstFeiertag Then Tage = Tage + 1
End If
AktuellesDatum = AktuellesDatum + 1
Loop
WerktageInklSamstag = Tage
End Function
8. Integration mit anderen Office-Tools
Die berechneten Werktage können Sie nahtlos in andere Office-Anwendungen übertragen:
- Word: Über Feldfunktionen oder QuickParts einbinden
- Outlook: Für Terminplanung mit Pufferzeiten nutzen
- PowerPoint: In Projektzeitplänen visualisieren
- Access: Für Datenbankabfragen mit Datumsfiltern verwenden
- Power BI: Als berechnete Spalte in Datenmodellen einbinden
Für die Übertragung nach Word können Sie folgende VBA-Prozedur verwenden:
Sub WerktageNachWordExportieren()
Dim wdApp As Object, wdDoc As Object
Dim rng As Range
Dim Werktage As Long
'Berechne Werktage
Werktage = Application.WorksheetFunction.NetWorkdays_Intl _
(Range("A2").Value, Range("B2").Value, 11, Range("D2:D20"))
'Erstelle Word-Dokument
Set wdApp = CreateObject("Word.Application")
Set wdDoc = wdApp.Documents.Add
'Füge Inhalt ein
wdDoc.Content.InsertAfter "Werktagsberechnung (inkl. Samstag)" & vbCrLf & vbCrLf
wdDoc.Content.InsertAfter "Startdatum: " & Format(Range("A2").Value, "dd.mm.yyyy") & vbCrLf
wdDoc.Content.InsertAfter "Enddatum: " & Format(Range("B2").Value, "dd.mm.yyyy") & vbCrLf
wdDoc.Content.InsertAfter "Werktage: " & Werktage & vbCrLf
'Mache Word sichtbar
wdApp.Visible = True
'Bereinigen
Set wdDoc = Nothing
Set wdApp = Nothing
End Sub