Hallo kann ich das in Excel ?
Danke
Hallo kann ich das in Excel ?
Danke
Hallo kann ich das in Excel ?
Hi Sam,
wenn du das Add Inn Analysefunktionen einbindest haste eine Funktion Kalenderwoche, aber sie rechnet falsch(amerikanisch).
Datum in A1:
=KÜRZEN((A1-DATUM(JAHR(A1+3-REST(A1-2;7));1;REST(A1-2;7)-9))/7)
Gruß
Reinhard
Hallo kann ich das in Excel ?
Ja. Entweder Du nimmst die Funktion KALENDERWOCHE.
— snip (Online-Hilfe Excel XP) —
Wenn diese Funktion nicht verfügbar ist und der Fehlerwert #NAME? zurückgegeben wird, installieren und laden Sie das Add-In Analyse-Funktionen.
— snip —
Oder Du schreibst Dir ein Makro in einem Modul wie folgt:
Public Function GetKW(pdatDatum As Date) As Long
GetKW = DateDiff("ww", CDate("1.1." & Year(pdatDatum)), pdatDatum, vbMonday) + 1
End Function
Dann, wenn bleistiftsweise in A1 das Datum steht und in B1 die Kalenderwoche dargestellt werden soll, kommt in B1 die Formel: =GetKW(A1)
Gruß, Manfred
nicht korrekt
Hallo kann ich das in Excel ?
Ja. Entweder Du nimmst die Funktion KALENDERWOCHE.
Public Function GetKW(pdatDatum As Date) As Long
GetKW = DateDiff(„ww“, CDate(„1.1.“ & Year(pdatDatum)),
pdatDatum, vbMonday) + 1
End Function
Hallo Manfred,
Formel1: =KALENDERWOCHE(A1)
Formel2: =GetKW(A1)
Formel3:=KÜRZEN((A1-DATUM(JAHR(A1+3-REST(A1-2;7));1;REST(A1-2;7)-9))/7)
Datum Formel1 Formel2 Formel3
31.12.99 53 53 52
01.01.00 1 1 52
02.01.00 2 1 52
16.09.00 38 38 37
nur Formel3 ist korrekt.
…
1976 wurde der Wochenbeginn auf Montag festgelegt. (Vorher gab’s die Kalenderwoche in dem Sinne also nicht.)
Die erste Woche des Jahres ist definiert als die Woche, in die mindestens 4 Tage fallen = DIN 1355
Entspricht der internationalen Norm ISO 8601 (1988); übernommen von der EU als EN 28601 (1992) und in Deutschland als DIN EN 28601 (1993) umgesetzt.
…
Gruß
Reinhard
Hallo,
Wie Reinhard schon sagte, rechnet diese Funktion nach dem amerikanischen Kalender. Ich habe jedoch eine Funktion, die einwandfrei funktioniert. hoffe du kommst mit VBA zurecht. Diese benutze ich:
Function KWoche(KwDatum)
'Deklaration der Konstanten
Const Sonntag = 1
Const Montag = 2
Const Dienstag = 3
Const Mittwoch = 4
Const Donnerstag = 5
Const Freitag = 6
Const Samstag = 7
'Fehlersprungmarke setzen
On Error GoTo Fehlermarke:
'Bestimmung der zur Berechnung notwendigen Variablen
Jahresanfang = DateSerial(Year(KwDatum), 1, 1)
VorJahresEnde = DateSerial(Year(KwDatum) - 1, 1, 1)
WochentagJahresanfang = Weekday(Jahresanfang)
WochentagVorJahresEnde = Weekday(VorJahresEnde)
differenz = DateValue(KwDatum) - Jahresanfang
'bestimmt die Kalenderwoche des ersten Tags des Jahres
'ab Donnerstag -> KW1 des aktuellen Jahres
'bis Mittwoch -> KW 52/53 des letzten Jahres
'mittels der Differenz wird dann die KW des Eingabedatums berechnet
Select Case WochentagJahresanfang
Case Donnerstag
'Prüfung ob es sich um eine Schaltjahr handelt
If (differenz - (WochentagJahresanfang - 6)) / 7
Hallo Gemeinde
meines Wissens arbeitet diese Funktion auch korrekt.
sollte Ich mich täuschen, so bitte Ich um aufklärung.
Function kw(d As Date) As Integer
t = DateSerial(Year(d + (8 - WeekDay(d)) Mod 7 - 3), 1, 1)
kw = (d - t - 3 + (WeekDay(t) + 1) Mod 7) \ 7 + 1
End Function
Hallo, Reinhard!
[…]mindestens 4 Tage fallen = DIN 1355
Sch…Normen. Dabei habe ich eine „Normentante“ bei mir im Büro sitzen… Danke aber mal. Jetzt werde ich mir Deine Formel mal genauer ansehen, versuchen, sie zu verstehen und vor allem in meine Programme einbauen, wo ich es brauche. Wobei: Ist doch egal, ob ich sie verstehe oder nicht.
Merci+Gruß,
Manfred