Wochentag einer Kalenderwoche

In Ex­cel ist das rech­nen mit Kalen­der­wochen nicht di­rekt mög­lich. Um das zu bew­erk­stel­li­gen, muss aus ei­nem Tag der Kalen­der­woche ein „echt­es” Da­tum berech­net wer­den. Auf der Ba­sis der Ex­cel-For­mel von Franz Pölt:
=("4.1." & A2) + A1*7 - 7 - REST("2.1." & A2; 7)
bie­tet 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 die­se Funk­tion in ein all­ge­meines Mod­ul ein oder er­stel­len Sie bei Be­darf dar­aus ein Add-In bzw. bin­den Sie es in ein beste­hen­des ein. Das Jahr kann zwei- oder vier­stel­lig ein­ge­ge­ben wer­den, die Kalen­der­woche wird nicht auf Plau­si­bil­ität ge­prüft. Das drit­te Argu­ment ist option­al. Wird es nicht ein­ge­ge­ben, dann wird der Mon­tag der entsprechen­den Kalen­der­woche zu­rück ge­ge­ben. Sol­len an­de­re Wochen­t­age berech­net wer­den, dann wird ein entsprechen­der Wert (Mon­tag = 1, Dien­stag = 2, .. Son­ntag = 7) er­war­tet. Auch hier find­et kei­ne Prü­fung auf Plau­si­bil­ität statt (ist aber leicht mög­lich).

[NachOben­Let­zte Ver­weis=„CS: Da­tum 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.