Datums-Berechnung



Excel-Version: 2000
nach unten

Betrifft: Datums-Berechnung
von: Willy
Geschrieben am: 30.04.2002 - 08:58:31

Hallo
Ich suche eine Formel oder Funktion, die mir das Datum des Montags der Woche 1 berechnet. In A1 gebe ich die Jahreszahl z.B. 2004 ein, in der Zelle B2 soll das Datum des Montags der Woche 1 erscheinen.
Vielen Dank

nach oben   nach unten

Re: Datums-Berechnung
von: Rolf, Lgh.
Geschrieben am: 30.04.2002 - 10:17:10

Hallo Willy,
vielleicht hilft Dir oder anderen das weiter:

MS Excel von Rolf, Lgh. an Willy
 ABCDEF
12004       
225.12.2003  52=ISOWeek(A2)Donnerstag=TEXT(A2;"TTTT")
326.12.2003  52usw.Freitagusw.
427.12.2003  52  Samstag
528.12.2003  52  Sonntag
629.12.2003  1  Montag
730.12.2003usw.1  Dienstag
831.12.2003=A9-11  Mittwoch
901.01.2004=DATUM($A$1;1;1)1  Donnerstag
1002.01.2004=A9+11  Freitag
1103.01.2004usw.1  Samstag
1204.01.2004  1  Sonntag
1305.01.2004  2  Montag
1406.01.2004  2  Dienstag
1507.01.2004  2  Mittwoch


Option Explicit

'StandardModule: basMain

Function ISOWeek(dat As Date) As Integer
   Dim dbl As Double
   dbl = DateSerial(Year(dat + (8 - _
      Weekday(dat)) Mod 7 - 3), 1, 1)
   ISOWeek = (dat - dbl - 3 + _
      (Weekday(dbl) + 1) Mod 7) \ 7 + 1
End Function


Gruß Rolf
nach oben   nach unten

vielleicht so
von: Rolf, Lgh.
Geschrieben am: 30.04.2002 - 11:12:09


Option Explicit

'StandardModule: basMain

Function ISOWeek(dat As Date) As Integer
  Dim dbl As Double
  dbl = DateSerial(Year(dat + (8 - _
                               Weekday(dat)) Mod 7 - 3), 1, 1)
  ISOWeek = (dat - dbl - 3 + _
             (Weekday(dbl) + 1) Mod 7) \ 7 + 1
End Function

Function Montag_der_Woche_Eins(Jahr As Integer) As Date
  Dim strWochentag As String
  Dim intWoche As Integer
  Dim datDatum As Date
  datDatum = "01.01." & Jahr
  strWochentag = Format(datDatum, "dddd")
  intWoche = ISOWeek(datDatum)
  If intWoche > 1 Then GoTo Später
  Do Until intWoche = 1 And strWochentag = "Montag"
    datDatum = datDatum - 1
    strWochentag = Format(datDatum, "dddd")
    intWoche = ISOWeek(datDatum)
  Loop
Später:
  Do Until intWoche = 1 And strWochentag = "Montag"
    datDatum = datDatum + 1
    strWochentag = Format(datDatum, "dddd")
    intWoche = ISOWeek(datDatum)
  Loop
  Montag_der_Woche_Eins = datDatum
End Function


nach oben   nach unten

Re: vielleicht so
von: Willy
Geschrieben am: 01.05.2002 - 08:27:21

Hallo Rolf
Vielen Dank für die beiden Funktionen. Es funktioniert ausgezeichnet; genau wie gewünscht.
Willy.

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Diagramm erstellung"