Zeichenfolge ersetzen
#1
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.

Schon jetzt vielen Dank für eure Hilfe.


Angehängte Dateien
.xlsx   Ersetzen Problem.xlsx (Größe: 10,77 KB / Downloads: 14)
Top
#2
Hallo M...,

hier einige Fragen:

 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.





Top
#3
Hallo Helmut,
vielen Dank das du versuchst mir zu helfen.

zu 1. Ein VBA ist kein Problem

zu 2. Der Datenbestand besteht aus 256231 Zeilen

zu 3. ja mindestens 1

zu 4. kann direkt in der Ausgangsliste ersetzt werden

Vielen Dank.

MB
Top
#4
Servus Monsterbabe,

vielleicht doch eine Formel in Spalte D?

=WENN(UND(NICHT(ISTLEER(C2));ISTFEHLER(FINDEN(B2;A2)));A2;WECHSELN(A2;B2;C2))

LG Gerd
Top
#5
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.

Vielleicht hast du da noch einen Lösungsansatz.


Angehängte Dateien
.xlsx   Lösungsansatz Ersetzen Problem.xlsx (Größe: 13,24 KB / Downloads: 2)
Top
#6
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 das Beispiel in der Mappe an.

LG Gerd


Angehängte Dateien
.xlsm   Lösungsansatz Ersetzen Problem.xlsm (Größe: 19,71 KB / Downloads: 3)
Top
#7
Hallo Gerd,

das sieht ansatzmäßig sehr gut aus, es funktioniert bei mir auch bis Zeile 1095.
Danach geht es nicht mehr.

Kann ich dir eventuell über PN die Datei zukommen lassen?

Danke.

MB
Top
#8
Servus MB,

über PN kann man keine Dateien anhängen.

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)

LG Gerd
Top
#9
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.





Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste