Registriert seit: 21.04.2016
Version(en): Office 2016
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
Registriert seit: 21.07.2016
Version(en): 2007
30.08.2016, 14:33
(Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2016, 14:33 von IchBinIch.)
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
Registriert seit: 21.04.2016
Version(en): Office 2016
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.
Registriert seit: 21.07.2016
Version(en): 2007
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:.
Registriert seit: 22.06.2016
Version(en): 2007
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.
Registriert seit: 21.07.2016
Version(en): 2007
Hallo JotGe,
der TS will aus einer gegebenen KW den Monat ermitteln.
Deine Funktion ermittelt aus einem Datum die KW.
Gruß
Ich
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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' |
| A | B | C | D |
1 | KW | 35 | Montag | 29.08.2016 |
2 | Jahr | 2016 | Monat | 8 |
Zelle | Formel |
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)