also das mit dem Zusatzvertrag ist für mich nicht logisch, und mir fällt da auf die Schnelle nichts ein. nach der restlichen Logik gehören die Zusatzverträge zu A und B (die stehen in Klammern dahinter)
für den Rest so:
Schritt 1: Ziehe B7:C7 nach F1:G1 (oder wo sonst platz ist Schritt 2: in Zelle B2 diese Formel, diese Formel dann von B2 nach C-ende kopieren
die Formel sucht nach dem Namen in Spalte A und gibt dann den Text aus, der zwischen dem Zeilenumbruch und der Klammer "(", die sich als nächstes vor dem Anzeigenamen befinden, aus.
Hallo Daniel, mega gut, das ist genau das, was ich gesucht habe. Danke! Nur, wenn in der Klammer mehrere Unternehmen aufgelistet sind, scheint es nicht zu funktionieren. Also wenn hinter Datum und Vertragsversion in der Klammer mehrere Unternehmen stehen, weil alle dasselbe Datum und dieselbe Vertragsversion haben).
Die Sortierung des Zusatzvertrags in Zeilen kann man ignorieren, das ist so schlecht gepflegt, dass es sich nicht sortieren lassen wird.
da ist mein Makro am Anfang auch drüber "gestolpert". Ich habe es aber schnell gemerkt. Bitte schau mal ob dir meine Lösung weiterhilft? Würde mich freuen ....
Wenn du uns für Zusatzverträge eine neue Spalte angibst kann man die Daten auch da hineinschreiben.
09.08.2025, 08:54 (Dieser Beitrag wurde zuletzt bearbeitet: 09.08.2025, 08:55 von Andreas Killer.)
(07.08.2025, 19:15)Magdalika schrieb: Auch wichtig: Die Zeilen, in denen Zusatzvertrag steht (im Beispiel nur eine), müssen auch im Sheet "Ergebnis" auf die Unternehmen folgen, unter denen sie in "Tabelle 1" stehen. Im Beispiel ist das JJ. Jetelia Mobility.
Idealerweise sollte der Lösungsweg relativ gut kopierbar sein, da die Vorlage von verschiedenen Personen genutzt werden müsste, die die Tabellen selbst erstellen sollen.
Auch dieses Beispiel ist zu schön um wahr zu sein, es enthält keine Fehler/Sonderfälle und ich wette das diese später auftreten.
Die Firmen in den () können doppelt vorkommen (Mehrere verschiedene Verträge oder versch.Datum bei gleichem Vertrag). Die Firmen in den () können in Spalte A nicht vorkommen (durch Tippfehler).
Dann verstehe ich nicht was Du da kopieren willst. Wenn wir mal den Fall nehmen das wir einen Ordner haben in dem 100 dieser Dateien liegen, dann können wir alle diese Dateien in einem Rutsch einlesen und verarbeiten.
Wenn die Dateien einen sinnigen Fall-Namen haben, dann können wir eine Datenbank mit den Feldern Fall;Firma;Partnernummer;ADatum;AVertrag;BDatum;BVertrag erzeugen. Und daraus kannst Du alle benötigten Informationen ziehen... auf welche Weise auch immer.
Würde Dir so eine Lösung mit Power Query nutzen oder reicht Dir das Makro?
09.08.2025, 11:08 (Dieser Beitrag wurde zuletzt bearbeitet: 09.08.2025, 11:09 von ws-53.)
Vermutlich entstehen die Sonderfälle zum Teil durch Tippfehler. Die durch Tippfehler entstandenen Sonderfälle ließen sich, durch eine pflegbare Ersetzungstabelle, mehr oder weniger gut abfangen und lässt sich auch leicht mit Power Query realisieren. Weitere Sonderfälle, die nicht aus Tippfehlern resultieren, werden vermutlich erst beim testen mit Echtdaten erkannt.
Aber das sich ja der TE an Power Query versucht hat, hier mal eine Variante, die eine Ausgangsbasis für eine finale Version sein kann. Bei werden bereits die Daten einer Mappe aufbereitet, die im benannten Feld "pm_import" (B3) definiert wird. Wie schon richtig angemerkt, lässt sich das auch ganz einfach auf einen Import von einem Ordner umstellen.
Final würde ich für die 2 fast identischen Abfragen Verträge_A und Verträge_B den gemeinsamen Teil in eine Funktion auslagern. Aber da ja Funktionen nicht schrittweise getestet werden können und vermutlich noch Änderungen erforderlich werden, die u.U. der TE selbst durchführen kann, habe ich zuerst einmal auf die Funktion verzichtet.
ich bin von der Excel-Mappe aus #10 ausgegangen und habe im Arbeitsblatt "Ergebnis" neben deinen Vorgabeergebnissen ab Spalte G meine 4 dynamischen Arrayformeln eingefügt, sodass man einen Vergleich mit deinen Werten anstellen kann. Der einzige Unterschied, der mir aufgefallen ist, ist in Zeile 36+37 enthalten: Bei mir fehlt das Datum vor dem "Zusatzvertrag...".
Also Arbeitsblatt "Ergebnis" in Zelle G1 die Überschriftenformel (im Bereich G1:J1): =Tabelle1!A1:D1
In Zelle G2 die Spaltenformel für die Anzeigenamen (im Bereich G2:G44): =A2:A44
In Zelle H2 die Spaltenformel für die Verträge/A-Version (im Bereich H2:H44): =LET(AnzNm; $G$2:$G$44; ListeV; Tabelle1!$B$2:$B$44; r; REDUCE(""; ListeV; LAMBDA(akk;si; LET(tsi; TEXTTEILEN(si; ; ZEICHEN(10)); WENNFEHLER(VSTAPELN(akk; tsi); akk)))); ArrayV; WEGLASSEN(r; 1); NACHZEILE(AnzNm; LAMBDA(Nm; XVERWEIS(GLÄTTEN(Nm); ArrayV; REGEXEXTRAHIEREN(ArrayV; "([A-Za-z].*)\s\("; 2); ""; 3))))
In Zelle I2 die Spaltenformel für die Verträge/B-Version (im Bereich I2:I44): =LET(AnzNm; $G$2:$G$44; ListeV; Tabelle1!$C$2:$C$44; r; REDUCE(""; ListeV; LAMBDA(akk;si; LET(tsi; TEXTTEILEN(si; ; ZEICHEN(10)); WENNFEHLER(VSTAPELN(akk; tsi); akk)))); ArrayV; WEGLASSEN(r; 1); NACHZEILE(AnzNm; LAMBDA(Nm; XVERWEIS(GLÄTTEN(Nm); ArrayV; REGEXEXTRAHIEREN(ArrayV; "([A-Za-z].*)\s\("; 2); ""; 3))))
In Zelle J2 die Spaltenformel für die Partnernummer (im Bereich J2:J44): =XVERWEIS($G$2:$G$44;Tabelle1!$A$2:$A$44;Tabelle1!$D$2:$D$44)
Die beiden Formeln in H2 und I2 sind gleich, nur der Zellbereich für "ListV" ist natürlich verschieden (Spalten B bzw. C aus Arbeitsblatt "Tabelle1").