Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Kalenderwoche nach DIN rechnet falsch

Kalenderwoche nach DIN rechnet falsch
01.12.2020 13:00:38
reiner
Hallo Leute,
https://www.herber.de/bbs/user/141983.xlsb
das Modul2 enthält eine abgespeckte Version zur Berechnung von Brückentagen in einem vorgegebenen Jahr.
Ich habe den Code mit unterschiedlichen Jahreszahlen getestet und korrekte Ergebnisse erzielt, sofern ein Brückentag mit Ermittlung der zugehörigen Kalenderwoche (nach DIN) auf einen Montag oder Freitag fällt.
Allerdings wird die KW für den 31.12.2019 bei mir falsch errechnet. Lt. Kalender beginnt die 1.KW 2020 bereits am 30.12.2019; lt. Berechnung hingegen liegt der 31.12.2019 in der 53.KW 2020!! Siehe auch !"MonthView" in frmUserForm1
Ich würde mich freuen wenn jemand einen Fehler in meinem Code erkennt oder eine korrekte Berechnung der Kalenderwoche kennt.
mfg
reiner
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kalenderwoche nach DIN rechnet falsch
01.12.2020 13:52:55
peterk
Hallo
Von MircoSoft:
"There is an issue with the use of this function. The last Monday in some calendar years can be returned as week 53 when it should be week 1. For more information and a workaround, see Format or DatePart functions can return wrong week number for last Monday in Year."
https://docs.microsoft.com/en-us/office/troubleshoot/access/functions-return-wrong-week-number
Workaround (auch von dieser Seite):

Function WOY (MyDate As Date) As Integer   ' Week Of Year
WOY = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If WOY > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then WOY = 1
End If
End Function

Anzeige
das ist die Lösung
01.12.2020 15:01:57
reiner
danke peterk
nun stimmt die Berechnung wieder
AW: Kalenderwoche 3x
01.12.2020 15:33:42
reiner
danke lupo aber mir ging es um eine Kalenderwochenberechnung mit VBA und nicht mit Formeln
Wenn Du meinst, dass das so unterschiedlich ...
01.12.2020 15:47:06
lupo1
... ist (insb. die uralte rechnerische Ermittlung), dann falten Zitronenfalter auch Zitronen.
;
Anzeige
Anzeige

Infobox / Tutorial

Kalenderwoche nach DIN korrekt berechnen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.
  2. Füge den folgenden VBA-Code in ein Modul ein:
    Function WOY(MyDate As Date) As Integer   ' Week Of Year
       WOY = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
       If WOY > 52 Then
           If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then WOY = 1
       End If
    End Function
  3. Speichere das Arbeitsblatt als Makro-fähige Datei (*.xlsm).
  4. Nutze die Funktion =WOY(DATUM(JAHR;MONAT;TAG)) in einer Zelle, um die Kalenderwoche zu berechnen.
  5. Teste die Funktion mit verschiedenen Daten, um sicherzustellen, dass die Berechnung korrekt ist.

Häufige Fehler und Lösungen

  • Fehler: Falsche KW für den Jahreswechsel
    Wenn die KW für den 31.12.2019 als 53 angezeigt wird, liegt das an der fehlerhaften Handhabung durch die Excel-Funktion. Nutze den oben genannten VBA-Code als Workaround.

  • Fehler: Falsche KW bei Brückentagen
    Wenn Brückentage nicht korrekt angezeigt werden, überprüfe, ob Du die Funktion WOY richtig in die Zelle eingegeben hast.


Alternative Methoden

  • Excel-Funktionen:

    • Bis Excel 2007: Verwende die Funktion KALENDERWOCHE(DATUM; 2).
    • Ab Excel 2010: Nutze =ISOKALENDERWOCHE(DATUM) für eine genauere Berechnung.
  • Access:
    Wenn Du die Kalenderwochen in Access berechnen möchtest, gibt es ähnliche Funktionen, die jedoch möglicherweise etwas anders implementiert sind.


Praktische Beispiele

  • Berechnung der KW für den 5. Januar 2020:

    =WOY(DATUM(2020;1;5))  ' Ergebnis: 1
  • Kalender mit Kalenderwochen 2020 erstellen:
    Erstelle eine Tabelle, die die Daten von 2020 und die entsprechenden Kalenderwochen anzeigt. Nutze dazu die WOY-Funktion in einer Spalte neben den Datumsangaben.


Tipps für Profis

  • Fehlerbehebung: Achte darauf, dass Dein Computer die richtigen Regionseinstellungen hat, da das die Berechnung der Kalenderwoche beeinflussen kann.
  • Verwendung von VBA: Wenn Du regelmäßig die Kalenderwoche für verschiedene Jahre berechnen musst, erstelle eine benutzerdefinierte Funktion in VBA, die Du einfach in Deinen Projekten verwenden kannst.

FAQ: Häufige Fragen

1. Warum wird die Kalenderwoche für den 31.12.2019 als 53 angezeigt?
Das liegt an einer fehlerhaften Berechnung in Excel. Der oben genannte VBA-Code löst dieses Problem.

2. Welche Excel-Version benötige ich für die Funktion ISOKALENDERWOCHE?
ISOKALENDERWOCHE ist ab Excel 2010 verfügbar. Bei älteren Versionen musst Du die KALENDERWOCHE-Funktion verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige