Clever-Excel-Forum

Normale Version: Werteaustausch mit Matrix
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe dasselbe Problem per Formel gelöst, müsste es nun aber mit Makro nachstellen und stehe auf dem Schlauch:

Ich habe eine Export Tabelle mit ca. 15k Zeilen und 2k unterschiedlichen Werten. Diese Werte müssen für den Re-Import verändert werden. Dafür gibt es eine Mapping-Tabelle in der diese 2k Werte auf 100 Werte gemappt werden. Die Export-Werte können dabei bis zu zwei der Mapping-Werte annehmen. Ziel ist im Endeffekt, dass die Werte in der Export-Tabelle durch die entsprechenden Werte aus der Mapping-Tabelle (durch Komma getrennt) ersetzt werden. 
Ich hoffe, das ist einigermaßen plastisch erklärt. In angefügten Beispieltabellen habe ich das Problem nachgestellt.

Ich hoffe, ihr könnt mir dabei helfen.

Cheers,
Sebi
Moin


Zitat:ich habe dasselbe Problem per Formel gelöst, müsste es nun aber mit Makro nachstellen


Warum?
Warum zeigst du nicht wie das Ergebnis aussehen sollte ?
Und 20 Zeilen statt 20.000 reichen aus als Beispiel.
Und das alles in nur einer Datei bitte.
(16.09.2021, 09:31)Elex schrieb: [ -> ]Moin




Warum?

Servus nochmal,

nun, das Prozedere muss einigermaßen regelmäßig ablaufen und ich traue den ausführenden Personen eher einen Klick zu, als mit den Formeln zu hantieren.

Ich hab das Beispiel nochmal in einer Datei zusammengefasst und gekürzt, außerdem die Formel im Sinne des Zielformats drin gelassen.
Zitat:ich traue den ausführenden Personen eher einen Klick zu, als mit den Formeln zu hantieren.
Verstehe ich vollkommen Smile


Man könnte jetzt beim Start des Makros ein Collection Objekt mit den Mapping-Werten aufbauen und dann mit einem simplen Loop durch die komplette Exportliste gehen und die einzelnen Werte gegen die Collection abgleichen. Wenn sichergestellt ist, dass keine Werte in der Mapping-Tabelle doppelt vorkommen, könnte man auch mit Keys arbeiten.
Kann auch so:

PHP-Code:
=TRIM(SUBSTITUTE(INDEX(MapBsp!$C$2:$C$40&", " &MapBsp!$D$2:$D$40;MATCH(P21;MapBsp!$B$2:$B$40;0))&" ";", ";"")) 


und in MapBsp statt
"ohne Zuordnung": leer lassen