 |
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
|
 |