Translate

Montag, 2. Januar 2012

Montag einer Kalenderwoche ermitteln

So wie es wichtig ist die Kalenderwoche aus einem Datum ermitteln zu können (Siehe hier), ist es durchaus öfters mal von nöten das erste Datum (Montag) einer Kalenderwoche zu ermitteln.


In Access:
DatSeriell([Jahr];1;4)+[KW]*7-7-(DatSeriell([Jahr];1;2) Mod 7)

Die Felder [Jahr] und [KW] sind zu ersetzen durch ihre Feldnamen.


In Excel:
=DATUM(A2;1;4)+A1*7-7-REST(DATUM(A2;1;2);7)

Der Bezug A1 verweist auf ihre Zelle mit dem Kalenderwochenwert und der Bezug A2 verweist auf ihre Zelle mit dem Jahreswert.


In VBA:

Public Function FirstDateOfCalWeek(cWeek As Byte, Optional cYear As Variant) As Date
    If IsMissing(cYear) Then cYear = Year(Date)
    FirstDateOfCalWeek = DateSerial(cYear, 1, 4) + cWeek * 7 - 7 - (DateSerial(cYear, 1, 2) Mod 7)
End Function


Ausgegangen wird von den europäischen Standards, d.h.: 
  • der erste Tag der Woche ist der Montag
  • die erste Woche eines Jahres ist jene, die mindestens 4 Tage hat

2 Kommentare:

  1. Hallo,

    kann es sein das entgegen der Beschreibung unter der Excelformel kein A1 vorhanden ist in ihrer Formel? => "=DATUM(A2;1;4)+1*7-7-REST(DATUM(A2;1;2);7)"
    oder übersehe ich da etwas?

    Grüße Mario

    AntwortenLöschen
  2. Danke für den Hinweis, es müsste lauten "=DATUM(A2;1;4)+A1*7-7-REST(DATUM(A2;1;2);7)"

    AntwortenLöschen