Berechnung von Kalenderwochen über den Jahreswechsel
#11
@Sigi

Das Ergebnis in die Datei ist falsch: wir benützen das ISO system.
2020 hat 53 Wochen.

Also benütze in deinem Beispiel einfach:

PHP-Code:
=YEAR(DATE(LEFT(D8;4);1;4+7*(mid(D8;6;7)-1))+7*E8)&"/"&WEEKNUM(DATE(LEFT(D8;4);1;4+7*(mid(D8;6;7)-1))+7*E8;21

Du kannst die Funktion reduzieren auf:
Code:
Function KWsAdd_ch(JJ_KW_von As String, KWs_add As Long, Typ As Long) As Variant
     y = DateSerial(Val(JJ_KW_von), 1, 4 + 7 * (Replace(Right(JJ_KW_von, 2), "/", "") - 1) + 7 * KWs_add)
     KWsAdd_ch = Year(y) & "/" & Application.WeekNum(y, 21)
End Function

Ich würde jedoch bevorzügen:

In G8:
PHP-Code:
=F_snb(D8:E8

Im Modul
Code:
Function F_snb(sn)
     y = DateSerial(Val(sn(1, 1)), 1, 4 + 7 * (Replace(Right(sn(1, 1), 2), "/", "") - 1) + 7 * sn(1, 2))
     F_snb = Year(y) & "/" & Application.WeekNum(y, 21)
End Function
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#12
Hallo snb,

das ist mir schon klar, aber es geht hier um eine "schweizerische" Besonderheit mit zwei Schließwochen am Jahresende! Bitte vorherige Beiträge lesen.

Gruß Sigi
Antworten Top
#13
Kein Thema:

Code:
Function F_snb(sn)
    y = DateSerial(Val(sn(1, 1)), 1, 4 + 7 * (Replace(Right(sn(1, 1), 2), "/", "") - 1) + 7 * sn(1, 2))
    w = Application.WeekNum(y, 21)
    If w > 50 Then
      n = Application.WeekNum(DateSerial(Val(sn(1, 1)), 1, -3))
      If (w = 53 And n = 53) Or (w = 52 And n = 52) Then v = -2
      If (w = 52 And n = 53) Or (w = 51 And n = 52) Then v = -1
    End If
     
    F_snb = Year(y) & "/" & w + v
End Function
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste