Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Kalenderwoche berechnen
#1
Hi,

hab folgendes Problem ich bekomme wöchentlich eine Datei die in eine Tabelle der Access DB einspiele..In der Datei ist das Jahr und Die KW sowie viele andere Sachen enthalten ( Produktname, Verkaufszahl, etc.) Kann ich in die vorhandene Access Tabelle ein Feld Monat einfügen und den Monat automatisch berechnen lassen? Da ich aus der Datenbank eine Pivot in Excel erstellen möchte die mir die monatlichen Abverkaufszahlen anzeigt wäre es super wenn ihr mir helfen könnt :(
Das Jahr und die KW sind in getrennten Spalten.

vielen dank schon einmal für eure Unterstüzung
Antworten Top
#2
Hallo Mickey,

was für eine Datei bekommst Du denn wöchentlich? Also was ist das für ein Format?
In Excel habe ich so etwas schon mal gemacht. Wenn Du die Daten an Excel übergibst,
könnte man das wahrscheinlich einfacher in Excel lösen.

Wenn ich Dich richtig verstehe willst Du aus der Kalenderwoche einen Monat errechnen?!


Gruß
Ich
Antworten Top
#3
ich bekomme eine Excel Datei zugesendet und importiere diese in die DB. In eine Excel wird dann daraus eine Pivot erstellt. Das blöde ist ich kann innerhalb der Pivot nicht sortieren wenn der Monat nicht in der DB eingepflegt ist.
Antworten Top
#4
Also ich bin kein Access-Experte. Sicherlich geht das auch in Access.
Aber wenn ich die Datei bekäme würde ich entweder vor dem Import in Access die Monate in Excel einpflegen,
oder nach dem Export. Vorausgesetzt Du lässt beim Export keine Felder aus?!
Also hast quasi noch die gleichen Infos (zumindest KW und Jahr) in der Tabelle. Vor dem Import könnte kritisch sein,
da Du unter Umständen die Datenstruktur änderst. Ich weiß ja nicht ob Du Dir eine Datenbank mit allen Informationen
aus allen Dateien aufbaust :32:.
Antworten Top
#5
Hallo,

ich benutze eine Funktion von TommyK (aus dem Netz ca. 10 Jahre alt)

Code:
Function Kalenderwoche(XDatum As Variant, fModus As Boolean) As String
Dim x, y, z

Kalenderwoche = ""
If Not IsDate(XDatum) Then
Kalenderwoche = ""
Exit Function
End If
XDatum = CDate(XDatum)
x = Year(XDatum)
z = Format(XDatum, "ww", vbMonday, vbFirstFourDays)
y = Int((XDatum - DateSerial(Year(XDatum), 1, 1) + _
((Weekday(DateSerial(Year(XDatum), 1, 1)) + 1) Mod 7) - 3) / 7) + 1
If y = 0 Then
z = Format(DateSerial(x - 1, 12, 31), "ww", vbMonday, vbFirstFourDays)
If z >= 52 Then x = x - 1
ElseIf y > 52 And (Weekday(DateSerial(x, 12, 31)) - 1) Mod 7 <= 3 Then
If Format(XDatum + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then z = 1
If z = 1 Then x = x + 1
End If
If fModus = True Then
Kalenderwoche = Right("00" & z, 2) & "/" & Right("0000" & x, 4)
Else
Kalenderwoche = Right("00" & z, 2)
End If
End Function

In einer Abfragespalte wird dann der nachstehende Code zum ermitteln der KW verwendet.
DeinFeldname: Kalenderwoche([Datumsfeld];False)

Die nächste Möglichkeit wäre die verwendung der DatTeil Funkion
=DatTeil("ww";[Datumswert];2;2)
die Formel wird in ein Steuerelement eingetragen. Inwieweit diese fehlerträchtig ist kann ich nicht sagen, da ich sie noch nicht benutzt habe.

Es besteht auch die Möglichkeit über die Formatierung ... Format([datum];"ww") die KW anzuzeigen, jedoch ist hierbei zu berücksichtigen, daß der Sonntag in diesem Falle der erste Tag der Woche ist und Samstag der Letzte. Behelfsmäßig läßt sich das umgehen mittels Format([datum]-1;"ww")
Aber Vorsicht diese KW ist nicht nach DIN sondern nach US Standard. Außerdem ist die Verwendung von "ww" fehlerträchtig. Vergleiche hierzu die Berechnung von Access mit dem Kalender der Jahre 2007/2008 und 2008/2009.

Ich hoffe es hilft ein wenig weiter.

Auf gutes Gelingen.
Gruß
JG.
Antworten Top
#6
Hallo JotGe,

der TS will aus einer gegebenen KW den Monat ermitteln. 
Deine Funktion ermittelt aus einem Datum die KW.

Gruß
Ich
Antworten Top
#7
Hallöchen,

da eine Kalenderwoche auch zwei Monate haben kann wäre erst mal die Frage, welchen von beiden Du dann haben willst.
Mann könnte z.B. festlegen, den ersten. Dann könntest Du von der KW das Datum des Montags errechnen und hast dadurch dann auch eine einfache Möglichkeit, den Monat zu extrahieren. Hier in der Tabelle mal schrittweise:

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCD
1KW35Montag29.08.2016
2Jahr2016Monat8

ZelleFormel
D1=7*RUNDEN((7&1-B2)/7+B1;0)+177
D2=MONAT(D1)

Das könnte man natürlich auch in VBA umsetzen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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