Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

allgemeine Frage zur Wechseln Funktion

Forumthread: allgemeine Frage zur Wechseln Funktion

allgemeine Frage zur Wechseln Funktion
09.02.2025 15:32:53
Christian
Hallo,
mal eine kurze Frage, ich versuche mehrere Zeichen durch "" zu ersetzen

=WECHSELN(WECHSELN(WECHSELN(WECHSELN(B1;":";"");"?";"");"*";"");"/";"")


funktioniert. Dann hab ich mir aber gedacht, das ist so umständlich, probierst es doch mal mit einem Array,

aber
=WECHSELN(B1;{":";"?";"*";"/"};"")
führt bei mir zu einem Überlauf...

geht das generell nicht oder habe ich etwas falsch gemacht?

Danke
Christiam
Anzeige

30
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: allgemeine Frage zur Wechseln Funktion
09.02.2025 15:40:06
Ulf
Hi,
1 gg alle geht nicht
=WECHSELN(B1;{"&";"/"};{"";""})

hth
Ulf
LAMBDA rekursiv
09.02.2025 17:27:26
{Boris}
Hi,

definiere den Namen Tausche mit Bezug auf:

=LAMBDA(DerText;DieZeichen;WENN(DieZeichen="";DerText;Tausche(WECHSELN(DerText;LINKS(DieZeichen);"");TEIL(DieZeichen;2;999))))

In der Zelle dann:

=TAUSCHE(B1;":?*/")

VG, Boris
Anzeige
AW: LAMBDA rekursiv
09.02.2025 18:29:57
Christian
Hallo Boris,

hast du eine Idee, wie lang ich nicht mehr den Namensmanager genutzt habe und wie lang es gedauert hat, ihn wiederzufinden...

aber abgesehen von einer Meldung über ein potentielles Sicherheitsrisiko funktioniert auch dieser Vorschlag...

Danke
Christian
Dann würde ich...
09.02.2025 17:58:22
Case
Moin Christian, :-)

... zu REGEXERSETZEN raten: ;-)
https://www.herber.de/bbs/user/175584.xlsx

Im "grünen" Bereich ist noch ein Backslash mit aufgenommen. ;-)

Du kannst da auch gleich ganze Bereiche angeben und ist relativ einfach zu warten. ;-)

Arbeitest du mit mehreren dieser "Geschichten", kannst du das Pattern auch aus einer Zelle nehmen - wird die Wartung noch etwas einfacher. ;-)

Ist auch immer zu testen bei: ;-)
https://regex101.com/

Servus
Case
Anzeige
AW: allgemeine Frage zur Wechseln Funktion
10.02.2025 20:03:11
Daniel
HI
das kannst du dir vielleicht als kleine VBA-Funktion selber schreiben:
dieser Code in ein allgemeines Modul:
Function WechselnMehrere(DeinText As String, NeuesZeichen As String, ParamArray AlteZeichen()) As String

Dim Z
For Each Z In AlteZeichen
DeinText = Replace(DeinText, Z, NeuesZeichen)
Next
WechselnMehrere = DeinText
End Function


und dann:
=WechselnMehrere(B1;"";":";"?";"*";"/")

dh erster Paramter ist der Text, der zweite Parameter ist das neue Zeichen, danach folgen dann alle Zeichen, die erstetzt werden sollen in beliebiger Anzahl (Maximal 30).

Gruß Daniel
Anzeige
AW: allgemeine Frage zur Wechseln Funktion
10.02.2025 21:08:47
Christian
Hallo Daniel,

funktioniert einwandfrei. Danke
Christian
Im Anhang habe...
09.02.2025 18:19:04
Case
Moin Christian, :-)

... ich nochmal angepasst: ;-)
https://www.herber.de/bbs/user/175585.xlsx

Während Excel da etwas großzügiger ist, bekommst du Pattern-Fehler bei:
https://regex101.com/

Dort wird eine andere Engine benutzt. ;-)

Du musst auch den Slash maskieren - in Excel nicht.

Im Anhang auch mal mit Pattern aus Zelle. ;-)

Und - wenn - es mehrere Zeichen nacheinander gibt ist es sinnvoller mit "+" zu arbeiten, denn dann wird im Block ausgetauscht.

Servus
Case
Anzeige
AW: Im Anhang habe...
09.02.2025 18:25:43
Christian
Hallo Case,

vielen DAnk für die Datei und die Erklärung,

wie ich bereits vor ein paar MInuten zu Charly sagte, ist das hier doch für mich verständlicher als ich vermutet hatte. Funktionieren tut es auch.
Christian
Es ist eigentlich...
09.02.2025 19:58:46
Case
Moin Christian, :-)

... nicht so schwierig sich mit RegEx anzufreunden. ;-)

Es gibt natürlich auch die Möglichkeit das in Power Query zu lösen. Es kommt immer auf die Ausgangsdaten an. Bist du z. B. schon in PQ, würde ich es gleich da erledigen. ;-)

Servus
Case
Anzeige
AW: Es ist eigentlich...
09.02.2025 21:32:35
Christian
Hallo Case,

ich bin sicherlich weit weg davon ein PQ Experte zu sein aber die rechte Maustaste auf die Spaltenüberschrift und Werte ersetzen kenne ich.

Danke
Christian
Das ist mir schon...
09.02.2025 22:08:50
Case
Moin Christian, :-)

... klar. Mir geht es auch mehr um das ersetzen mehrerer Sonderzeichen auf "einen Rutsch" - also Thema "List.Accumulate". ;.)
Also auch mehrfache Leerzeichen, die unter Umständen übrig bleiben, gleich mit entfernen usw.. :-)

Servus
Case
Anzeige
AW: allgemeine Frage zur Wechseln Funktion
09.02.2025 15:45:24
Christian
Hallo Ulf,

danke für deine Antwort,

WECHSELN(B1;{":";"?";"*";"/"};{"";"";"";""})


führt leider bei mir immer noch zu einem Überlauf.

Aber ok, dann bleibe ich halt bei der Langversion.
Gruß
Christian
AW: allgemeine Frage zur Wechseln Funktion
09.02.2025 16:07:03
RPP63
Moin!
Das müsste mit den neuen Regex-Funktionen klappen.
Kann ich erst gegen Abend prüfen.

Gruß Ralf
Anzeige
AW: allgemeine Frage zur Wechseln Funktion
09.02.2025 16:31:00
Christian
Hallo Ralf, danke für das Angebot,

aber bei RegEx verstehe ich noch weniger als Bahnhof. Ich fürchte es würde darauf hinauslaufen, dass ich deinen Vorschlag mir anschaue, teste und dann des besseren Verständnis wegen doch bei der ursprünglichen Version bleibe.

Gruß
Christian
=REGEXERSETZEN(B1;"[:?*/]";"")
09.02.2025 17:49:46
Charly CNX
AW: =REGEXERSETZEN(B1;"[:?*/]";"")
09.02.2025 18:23:15
Christian
Hallo Charly,

ok, dann muss ich zugeben, dass ist doch verständlich, selbst für mich. Und funktionieren tut es auch, danke

Christian
Anzeige
AW: =REGEXERSETZEN(B1;"[:?*/]";"")
10.02.2025 23:26:51
Christian
Hallo, ich würde mal gerne nochmal zu dieser Funktion zurückkehren mit einem etwas spezielleres Anliegen

=REGEXERSETZEN(B1;"[:?*/]";"")

klar, in kann das ' in die eckigen Klammern setzen, um es zu löschen.
Aber kann ich auch sagen, lösche das erste Zeichen, wenn es ein ' ist und lass eventuelle andere ' stehen?

Oder brauche ich dann doch eine Formel a la Wenn(Links(B1;1)="'";Rechts(Länge(B1)-1;B1)

Die Formel ist jetzt ungetestet aus dem Kopf hingeschrieben.
Oder kann ich das auch noch irgendwie in die Regexersetzen Funktion integrieren?

Danke
Christian
Anzeige
Frage wieder auf offen gesetzt owT
10.02.2025 23:27:33
Christian
Du kannst da in einem...
11.02.2025 08:55:14
Case
Moin Christian, :-)

... gewissen Rahmen mit dem Pattern verschiedenes erreichen: ;-)
https://www.herber.de/bbs/user/175605.xlsx

Schau dir die Pattern mal an. ;-)

Servus
Case
AW: Du kannst da in einem...
11.02.2025 10:55:23
Christian
Hallo, Case,

so wie die Datei aussieht, ist das leider nicht das was ich gemeint habe.
Ich meinte, das erste Zeichen löschen, wenn es ein ' ist, alle anderen ' behalten.
Deine Datei sieht für mich so aus, dass es darauf abzielt, zwar das erste ' zu löschen, aber egal wo im Text es steht.
Von den anderen bisher genannten Zeichen : ? * und / sollen weiterhin alle Zeichen, die vorkommen gelöscht werden.
Ja ok, wenn es nicht geht, baue ich halt die LINKS/RECHTS Variante drumherum.

Gruß
Christian

Anzeige
Du musst etwas...
11.02.2025 11:26:32
Case
Moin Christian, :-)

... kreativer denken: ;-)

=REGEXERSETZEN(B9;"'";"";1)

Servus
Case
AW: =REGEXERSETZEN(B1;"[:?*/]";"")
11.02.2025 02:17:08
Charly CNX
Hi
Versuch mal
=REGEXERSETZEN(WENN(LINKS(B1;1)="'";TEIL(B1;2;LÄNGE(B1)-1);B1);"[:?*/]";"")

VG Charly
AW: =REGEXERSETZEN(B1;"[:?*/]";"")
11.02.2025 11:24:10
Christian
Hallo Charly,

ok, man kann es anscheinend nicht in die REGEXTRAHIEREN Formel einbauen, mann muss das LINKS/RECHTS bzw. LINKS/TEIL drumherumbauen. Aber kein Problem, habs getestet, funktioniert.

Danke
Christian
Anzeige
AW: Radio Eriwan...
11.02.2025 12:19:57
Christian
Hallo Case dann schau mal auf die Uhrzeit :-)

die Nachricht an Charly hab ich vor deiner Nachricht https://www.herber.de/forum/messages/2005392.html geschrieben.

Schlau, wie ich das dann mit den anderen Zeichen verbinden soll, die immer gelöscht werden sollen bin ich trotzdem nicht geworden. Ich bin in dem Fall mit Teillösungen bei denen ich mir den weiteren Weg selber denken muss, überfordert.

Gruß
Christian
Anzeige
Bist du nun...
11.02.2025 12:39:01
Case
Moin Christian, :-)

... schlauer? ;-)

=REGEXERSETZEN(REGEXERSETZEN(B19;"[:?*/]";"");"'";"";1)

Du kannst REGEXERSETZEN auch doppeln (ersetzt alle :?*/ und das ' nur am Anfang). ;-)

Servus
Case
in sofern ja, dass
11.02.2025 12:50:27
Christian
Excel bei mir sagt REGERSETZEN(Text; Muster; Ersetzung; Vorkommen;..... was ich so interpretiere dass wenn ich als 4. Parameter 1 schreibe, er das erste Vorkommen löscht, aber wenn das erste Zeichen ich sag mal ein M ist und das 7. Zeichen ein ' löscht er das ' trotzdem. Die Formel von Charly hatte geprüft, ob es das erste Zeichen ist. Darum geht es mir ja, das ' nur zu löschen, wenn es das erste Zeichen ist.
Anzeige
das mit dem Verschachteln hab ich auch verstanden owT
11.02.2025 12:52:06
Christian
Man kann sich...
11.02.2025 12:59:44
Case
Moin Christian, :-)

... ellenlange Themenstränge sparen, indem man eine aussagekräftige Beispieldatei mit Wunschergebnis zur Verfügung stellt. Wichtig ist nur, dass in der Beispieldatei erkennbar ist, wo was ersetzt werden soll. Es ist ja so - ich habe keine Frage bzw. kein Problem. ;-)

Servus
Case
Anzeige
das stimmt mit der Bsp Datei, aber...
11.02.2025 13:27:31
Christian
ich belasse es dann jetzt bei der funktionierenden Lösung von Charly.

20 MB Originaldatei zu 300 KB Testdatei machen ist nicht mal eben in ein paar Minuten getan und wenn ich irgendwas selbst konstruiere, Laufe ich Gefahr irgendwas übersehen zu haben.

Generell gebe ich dir aber recht, ich hätte dies von Anfang an machen sollen. Wobei das Problem mit den ' erst später aufgetreten ist, als ich längst schon mit der Datei und der ersten Regexextract Funktion weitergearbeitet hatte, zum Zeitpunkt, als ich den Beitrag hier eröffnet hatte, war das noch kein Thema.
Gruß
Christian
Anzeige
Anzeige
Anzeige