Excel:
Deutsche Kalenderwochen berechnen

Wollen Sie mit Excel die Kalenderwoche eines vorgegebenen Datums berechnen, erhalten Sie von der Funktion »KALENDERWOCHE« - sie ist Bestandteil des Addins »Analyse-Funktionen« - unter UmstΣnden ein falsches Ergebnis. Diese Funktion
berechnet die Kalenderwoche nach dem amerikanischen Standard und hΣlt sich nicht
an die DIN-Norm. So fΣllt nach dieser Berechnung der 4. Januar 1999 angeblich in die
zweite Kalenderwoche und nicht - wie es korrekt wΣre - in die erste.
Die DIN-Norm besagt, da▀ der 1. Januar eines Jahres nur dann zur ersten Kalenderwoche des Jahres geh÷rt, wenn er auf einen Montag, Dienstag, Mittwoch oder Donnerstag fΣllt. Handelt es sich beim 1. Januar um einen Freitag, Samstag oder Sonntag, zΣhlt er noch zur letzten Kalenderwoche des vorigen Jahres. Au▀erdem k÷nnen der 29., 30. und 31. Dezember eines Jahres bereits zur ersten Kalenderwoche des folgenden Jahres geh÷ren. Das ist dann der Fall, wenn der 31. Dezember auf einen Montag, Dienstag oder Mittwoch fΣllt.
Mit Hilfe der unten gezeigten VBA-Funktion k÷nnen Sie die deutsche Kalenderwoche eines Datums ermitteln. ╓ffnen Sie mit [Alt] [F11] den Visual-Basic-Editor und wΣhlen
»Einfⁿgen | Modul«. In das neue Modul-Fenster geben Sie die unten aufgefⁿhrten Befehle ein. Jetzt k÷nnen Sie die neue Funktion in Ihren Tabellen verwenden. Geben Sie in einer Zelle etwa als Funktion »deutsche_Kalenderwoche("4.1.99")« ein, so erhalten Sie als Ergebnis den Wert »1«.
Funktion zur Ermittlung der deutschen Kalenderwoche:
Function deutsche_Kalenderwoche(dat As Date) As
Integer
Dim kw As Integer
kw = Int((dat - DateSerial(Year(dat), 1, 1) + ((WeekDay(DateSerial(Year(dat), 1, 1)) + 1)Mod 7) - 3) / 7) + 1
If kw = 0 Then
kw = deutsche_Kalenderwoche(DateSerial (Year(dat) - 1, 12, 31))
ElseIf kw = 53 And (WeekDay(DateSerial(Year(dat), 12, 31)) - 1) Mod 7 <= 3 Then
kw = 1
End If
deutsche_Kalenderwoche = kw
End Function