Wochentag einer Kalenderwoche

In Excel ist das rechnen mit Kalenderwochen nicht direkt möglich. Um das zu bewerkstelligen, muss aus einem Tag der Kalenderwoche ein “echtes” Datum berechnet werden. 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 Funktion 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 Funktion in ein allgemeines Modul ein oder erstellen Sie bei Bedarf daraus ein Add-In bzw. binden Sie es in ein bestehendes ein. Das Jahr kann zwei- oder vierstellig eingegeben werden, die Kalenderwoche wird nicht auf Plausibilität geprüft. Das dritte Argument ist optional. Wird es nicht eingegeben, dann wird der Montag der entsprechenden Kalenderwoche zurück gegeben. Sollen andere Wochentage berechnet werden, dann wird ein entsprechender Wert (Montag = 1, Dienstag = 2, .. Sonntag = 7) erwartet. Auch hier findet keine Prüfung auf Plausibilität statt (ist aber leicht möglich).

[NachObenLetzte 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.