Wochentag einer Kalenderwoche

In Excel ist das rech­nen mit Kalen­der­wochen nicht direkt möglich. Um das zu bew­erk­stel­li­gen, muss aus einem Tag der Kalen­der­woche ein „echt­es” Datum berech­net wer­den. Auf der Basis der Excel-Formel von Franz Pölt:
=("4.1." & A2) + A1*7 - 7 - REST("2.1." & A2; 7)
bietet sich in VBA solch eine Funk­tion an:

Function TagInKaWo(Jahr As Integer, KaWo As Integer, _
 Optional WTag As Variant) As Date 'WTag = Mo (1) .. So (7)
   If IsMissing(WTag) Then WTag = 1 'Montag
   Jahr = Year(DateSerial(Jahr, 1, 1)) 'Falls 2-stellig übergeben
   TagInKaWo = DateValue("4.1." & Jahr) + KaWo * 7 - _
    8 - DateValue("2.1." & Jahr) Mod 7 + WTag
End Function

Fügen Sie diese Funk­tion in ein all­ge­meines Mod­ul ein oder erstellen Sie bei Bedarf daraus ein Add-In bzw. binden Sie es in ein beste­hen­des ein. Das Jahr kann zwei- oder vier­stel­lig eingegeben wer­den, die Kalen­der­woche wird nicht auf Plau­si­bil­ität geprüft. Das dritte Argu­ment ist option­al. Wird es nicht eingegeben, dann wird der Mon­tag der entsprechen­den Kalen­der­woche zurück gegeben. Sollen andere Wochen­t­age berech­net wer­den, dann wird ein entsprechen­der Wert (Mon­tag = 1, Dien­stag = 2, .. Son­ntag = 7) erwartet. Auch hier find­et keine Prü­fung auf Plau­si­bil­ität statt (ist aber leicht möglich).

[NachOben­Let­zte Verweis=„CS: Datum aus KaWo”]
Dieser Beitrag wurde unter Code-Schnipsel, Datum und Zeit, Rechnen & Zahlen, Verschiedenes, Zeit-Funktionen abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.