Hallo Profis, ich habe ein Problem und bitte um Hilfe.
In meiner Tabelle steht in Spalte A (Zuordnung) eine alphnumerisches Zeichen gewusel das nicht verändert werden darf, außer den Inhalt den ich ersetzt haben möchte. In Spalte C stehen die Daten die in Spalte A ersetzt werden müssen, aber nur dann wenn ein Eintrag in der Splte A mit dem Inhalt von Spalte B identisch ist.
Ich muss jetzt irgenwie hinbekommen, dass wenn in Spalte B und C ein Wert ist, das Excel in Spalte B den Inhalt mit Spalte A vergleicht und diesen dann mit Spalte C ersetzt bzw. ausstauscht.
Ich habe mal eine Datei angehängt. Sollte ich mich unverständlich ausgedrückt haben, kann man vielleicht hier nachvollziehen was ich möchte.
1. Für die Lösung ist wohl ein kleines VBA-Programm notwendig. Ist das für dich akzeptabel?
2. Ein Programm ist aber nur sinnvoll wenn die Aufgabe wiederholt ausgeführt werden soll oder wenn der Datenbestand einigermassen gross ist. Wie sieht dies bei dir aus? Ansonsten könnte man eine Formel schreben, die ermittelt in welcher Zeile der Suchbegriff aus Spalte B das erste mal in Spalte A auftaucht und dann manuell ersetzen.
3. Ist sicherhestellt, das in Spalte A hinter den Suchbegrffen aus B immer ein Leerzeichen ist?
4. Soll, wie im Beispiel, eine angepsste Kopie angelegt werden oder soll di Änderung dirkt in der Ausgangsliste erfolgen?
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
16.11.2017, 12:13 (Dieser Beitrag wurde zuletzt bearbeitet: 16.11.2017, 12:13 von Monsterbabe.)
Servus Gerd,
auch dir danke für die Hilfe.
Leider funktionert die Formel nur auf den ersten gefundenen Teil (grüner Pfeil ) Ich bräuchte die Änderung auch in den mit den roten Pfeilen gekennzeichneten Stellen.
16.11.2017, 13:05 (Dieser Beitrag wurde zuletzt bearbeitet: 16.11.2017, 13:06 von Bamberg.)
Servus Monsterbabe,
entschuldige, ich hatte Deine Anfrage falsch interpretiert. Die Zeilen in Spalte A sind ja völlig unabhängig von den Einträgen in Spalte B zu sehen. Lediglich die Einträge in C sind der gleichen Zeile in Spalte B zuzuordnen. Dann muss da doch VBA ran.
Schau Dir mal den Bereich der Formel hier etwas genauer an ... vielleicht hat sich der Bezug beim Kopieren verschoben? =SeachAndReplace(A2 ; $B$2:$B$19 ; $C$2:$C$19)
16.11.2017, 17:02 (Dieser Beitrag wurde zuletzt bearbeitet: 16.11.2017, 17:02 von Ego.)
Hallo MB,
hier noch einige Bemerkungen falls das Ersetzen wiederholt ausgeführt werden soll:
A) Bei 250.000 Sätzen würde ich keine Funktion mehr nutzen, sondern ein Makro das alle Zellen auf einmal anpasst über ein Button aufrufen. Das hat den Vorteil dass 1) das Dictionary nur einmalig und nicht 250.000 mal erstellt werden muss. 2) nicht bei jeder Änderung in der Ersatzliste direkt alle 250.000 Zellen neu berechnet werden. 3) ich die Zellen direkt überschreiben kann. und vielleicht den Nachteil dass ich für die Bereiche Namen vergeben sollte.
B) Ich würde im Makro bei der Artikelnummer ein Leerzeichen anhängen. (Ist insbesonder beim wiederholten Überschreiben unter A) notwendig.)
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.