Der Titel könnte etwas irreführend sein, da ich mir nicht so schlüssig bin, wie ich das Problem kurz benennen soll. Grundsätzlich muss ich vorausschicken, dass ich relativ unerfahren bin mit VBA, deshalb Asche über mein Haupt, falls die Lösung offensichtlich ist.
Ich habe das angehängte Excelfile mit rund 200'000 Zeilen, Spalten A - V sind gegeben durch den Output (den ich leider nicht verändern kann!) und ab Spalte X habe ich selber die Werte berechnet das ist nicht das primäre das Problem. Der letzte Schritt in Spalte AD und AL bringe ich jedoch nicht zu Stande.
Es geht in dem File um Trades im zwischen zwei Gesellschaften, immer 4 aufeinanderfolgende, aber nicht immer gleich sortierte Zeilen gehören zusammen und stellen einen Trade dar aus der Optik der jeweiligen Gesellschaft. Relevant für mich sind die Trades in welchen Asset ABC, DEF oder GHI vorkommen. Entweder verkauft Gesellschaft 1 eines der drei Assets oder es kauft eines der drei Assets basierend auf der Richtung des Trades werden die Werte in die Spalten X - AC oder AF - AK eingetragen. Soweit so gut. Was ich nun jedoch noch benötige in den Spalten AD und AL ist:
AD: In jener Zeile des Trades (der 4 zugehörigen Zeilen), in welcher die Werte in Spalte AC nicht 0 sind soll in Spalte AD der Name des Assets stehen, welches gekauft wurde. Für Reihe 2 - 5 wäre dies ABC, es wird ABC gekauft im Austausch für Asset XYZ. Da diese Werte immer aufderselben Zeile stehen ist dieser Teil eigentlich kein Problem und ist über eine simple wenn Formel lösbar.
AL: Hier soll auch in der Zeile des 4er Pakets, welches in der Spalte AK nicht 0 ist der Wert des zugehörigen Assets stehen. Hier ist jedoch das Problem, dass dies NICHT auf derselben Zeile steht wie die Zeile welche einen positiven Wert ausweist.
Bsp. Zeilen 6 - 9: In Zeile 6 steht das eine Asset und in Spalte AL auf Zeile 6 sollte somit das andere Asset, in dem Fall ABC stehen, dieser Wert steht jedoch nur in Zeile 8 und oder 9.
Als weiteres Erschwernis kommt hinzu, dass die Trades nicht immer in derselben Reihenfolge erfasst sind, wie es in den Beispieldateien ist. Somit müsste das VBA in der Lage sein, basierend auf des Wertes in der Spalte D, T oder U das 4er Packet zu identifizieren und dann den entsprechenden Wert zu suchen.
Die angestrebte Lösung wäre somit:
Zeile 1, Spalte AD: "ABC"
Zeile 6, Spalte AL: "ABC"
Zeile 12, Spalte AL: "DEF"
Zeile 16, Spalte AL: "GHI"
Am Schluss sollte ich in der Lage sein die Summen der Werte aus Spalte N zu bilden, wenn in Spalte AD das Asset ABC / DEF oder GHI steht und dasselbe wenn sie in Spalte AL stehen. Dies kann ich jedoch über einfach Filter lösen.
Ich hoffe ich habe mich verständlich ausgedrückt und jemand kann mir helfen. Bereits jetzt ein herzliches Dankeschön meinerseits.
LG
Philipp
https://www.herber.de/bbs/user/121916.xlsx