Quasi statische Kreuztabelle, Spalten in Zeilen jedoch berechnet
Hallo Leute
bin neu hier im Forum, sehr informativ, habe bisher viele Anregungen gefunden. Nun hab ich ein Problem, bei dem ich einfach nicht weiterkomme.
Aus einer recht umfangreichen csv-Datei habe ich die relevanten Daten importiert und aufbereitet. Enthalten sind Artikel mit ihren verschiedenen Lieferdaten. Nun interessiert mich aber nicht die Stückzahl pro Datum, sondern die gesamte Menge pro Lieferwoche. Gut, KW aus Datum ist klar, auch die Begrenzung auf die interessierenden KW (heutige KW plus 8). Ich muss nun aber die Mengen aus den Spalten mit den korrelierenden KW in die erste Zeile des zugehörigen Artikels schreiben. Nicht mehr, einfach statisch. RS ist quasi auch eine KW, nur aufsummiert.
Vielleicht sieht man es besser hier:
Also im Moment fehlt mir ein venünftiger Plan, vielleicht bin ich einfach zu dumm. Bin über jeden Ansatz froh.
Grüsse @all
Sam
bin neu hier im Forum, sehr informativ, habe bisher viele Anregungen gefunden. Nun hab ich ein Problem, bei dem ich einfach nicht weiterkomme.
Aus einer recht umfangreichen csv-Datei habe ich die relevanten Daten importiert und aufbereitet. Enthalten sind Artikel mit ihren verschiedenen Lieferdaten. Nun interessiert mich aber nicht die Stückzahl pro Datum, sondern die gesamte Menge pro Lieferwoche. Gut, KW aus Datum ist klar, auch die Begrenzung auf die interessierenden KW (heutige KW plus 8). Ich muss nun aber die Mengen aus den Spalten mit den korrelierenden KW in die erste Zeile des zugehörigen Artikels schreiben. Nicht mehr, einfach statisch. RS ist quasi auch eine KW, nur aufsummiert.
Vielleicht sieht man es besser hier:
Also im Moment fehlt mir ein venünftiger Plan, vielleicht bin ich einfach zu dumm. Bin über jeden Ansatz froh.
Grüsse @all
Sam
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 148598
Url: https://administrator.de/forum/quasi-statische-kreuztabelle-spalten-in-zeilen-jedoch-berechnet-148598.html
Ausgedruckt am: 22.05.2025 um 14:05 Uhr
19 Kommentare
Neuester Kommentar
Hallo samalson!
Also wenn ich dich richtig verstehe müssen alle Liefermengen von KW 31-38 in ein Feld kommen?
Was heisst es wenn keine KW dasteht? Einfach ignorieren?
Bei der Sache mit RS blick ich noch nicht ganz durch... Was käme in das Feld E5? Kommt etwas rein was und wieso? Wieso nicht?
Wäre über Erklärung dankbar (vielleicht versteh ich es dann gut genug um dir zu helfen
)
Mathe172
Also wenn ich dich richtig verstehe müssen alle Liefermengen von KW 31-38 in ein Feld kommen?
Was heisst es wenn keine KW dasteht? Einfach ignorieren?
Bei der Sache mit RS blick ich noch nicht ganz durch... Was käme in das Feld E5? Kommt etwas rein was und wieso? Wieso nicht?
Wäre über Erklärung dankbar (vielleicht versteh ich es dann gut genug um dir zu helfen
Mathe172
Hllo samsalon!
Ich hatte schon befürchtet, dass "
- daher eine (eher schütter kommentierte
) Alternative in VBA:
[Edit] Eintrag für "RS" erfolgte in falscher Zeile und Summen des letzten Artikel wurden nicht eingetragen - ist korrigiert [/Edit]
Grüße
bastla
Ich hatte schon befürchtet, dass "
SUMMEWENN()
" zuviel "Handarbeit" erfordern würde Sub SummeWenn()
AbZeile = 2 'Daten ab Zeile 2
AbSpalte = 6 'Wochensummen ab Spalte F
Dim KWSumme()
ReDim KWSumme(53)
Z = AbZeile
ArtAkt = Cells(Z, "D").Value
ArtZuletzt = ArtAkt
ArtStart = AbZeile 'Beginn der Artikelbruppe (für Eintragung der Summen) merken
Do While ArtAkt <> ""
If ArtAkt <> ArtZuletzt Then 'neuer Artikelbereich
'Summen eintragen
Cells(ArtStart, "E") = KWSumme(0)
S = AbSpalte
i = Cells(1, S)
Do While i <> ""
Cells(ArtStart, S) = KWSumme(i)
S = S + 1
i = Cells(1, S)
Loop
ReDim KWSumme(53) 'Summen löschen
ArtStart = Z
End If
KW = Cells(Z, "C").Value
If KW = "" Then KW = -1
If KW = "RS" Then KW = 0
Menge = Cells(Z, "B").Value
If KW >= 0 And KW <= UBound(KWSumme) Then KWSumme(KW) = KWSumme(KW) + Menge
Z = Z + 1
ArtZuletzt = ArtAkt
ArtAkt = Cells(Z, "D").Value
Loop
'Summen eintragen
Cells(ArtStart, "E") = KWSumme(0)
S = AbSpalte
i = Cells(1, S)
Do While i <> ""
Cells(ArtStart, S) = KWSumme(i)
S = S + 1
i = Cells(1, S)
Loop
End Sub
Grüße
bastla
Hallo zusammen!
Wie wärs mit:
für F5? Liesse sich af alle Felder kopieren(ziehen), auch auf die wo nichts stehen darf.
Vielleicht weiss einer von euch wie man die "0" raus bekommt wenn das "wenn" nicht erfüllt wird.
Mathe172
//Edit: Sollte auch für das mit RS also Spalte E gehen
Wie wärs mit:
=WENN($C4<>$C5;SUMMEWENN($C:$C;"=" & F$1;$B:$B);)
für F5? Liesse sich af alle Felder kopieren(ziehen), auch auf die wo nichts stehen darf.
Vielleicht weiss einer von euch wie man die "0" raus bekommt wenn das "wenn" nicht erfüllt wird.
Mathe172
//Edit: Sollte auch für das mit RS also Spalte E gehen
@mathe172
BTW: Da eine Abfrage auf "=" Default ist, kannst Du das Gleichheitszeichen auch weglassen:
Grüße
bastla
Vielleicht weiss einer von euch wie man die "0" raus bekommt wenn das "wenn" nicht erfüllt wird.
Wenn's nur das wäre:=WENN($C4<>$C5;SUMMEWENN($C:$C;"=" & F$1;$B:$B);"")
=WENN($C4<>$C5;SUMMEWENN($C:$C;F$1;$B:$B);"")
bastla
Hallo samalson!
Nicht ganz - als MO wird eine Zahl benötigt, genauso für die Spaltenüberschriften ab L12; allerdings könntest Du MO auch aus dem Datum bekommen, indem Du
verwendest ...
Das Array für die Monatssummen muss übrigens nicht ganz so groß werden -
würde es auch tun.
Meine Idee von oben wäre gewesen, einfach die Spalte C auf "Monat" (sowie die Spaltenüberschriften ab F1 auf 1 bis 12) zu ändern und ansonsten den Code völlilg unverändert zu lassen - Du willst ja aber eine Erweiterung der bestehenden Tabelle ...
Nicht ganz - als MO wird eine Zahl benötigt, genauso für die Spaltenüberschriften ab L12; allerdings könntest Du MO auch aus dem Datum bekommen, indem Du
MO = Month(Cells(Z, "A").Value)
Das Array für die Monatssummen muss übrigens nicht ganz so groß werden -
ReDim MoJahrSumme(12)
Meine Idee von oben wäre gewesen, einfach die Spalte C auf "Monat" (sowie die Spaltenüberschriften ab F1 auf 1 bis 12) zu ändern und ansonsten den Code völlilg unverändert zu lassen - Du willst ja aber eine Erweiterung der bestehenden Tabelle ...
Hallo samalson!
Versuch es einfach mit der ursprünglichen Datei (samt unverändertem Code) und der zu kopierenden Formel
in der Spalte C ...
Grüße
bastla
Und 1 bis 12 geht nicht so ganz, wäre heute zum Beispiel August bis Juli
Na dann eben 8 bis 12 und weiter mit 1 bis 7 - die Monatssumme wird anhand der Zahl in der Überschrift zugeordnet, wobei die Reihenfolge egal ist ...Versuch es einfach mit der ursprünglichen Datei (samt unverändertem Code) und der zu kopierenden Formel
=MONAT(A2)
Grüße
bastla