Clever-Excel-Forum

Normale Version: Textinhalt aus mehreren Klammern auslesen, Formatierung beibehalten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,
ich suche nach einer Möglichkeit den Textinhalt aus mehreren Klammern (einer Zeile) zu extrahieren und den Rest außer Kommas zu löschen.

Z.B.
Rot (red) Blatt (leaf), Baum (tree), alt (old)

zu:
red leaf, tree, old

Es ist nur ein Beispiel in der Praxis kann eine Zeile mehr als 3 gesuchte Elemente/Klammerinhalte beinhalten.

Ist das möglich?
Mit den mir bekannten Formeln kann ich immer nur den Inhalt der ersten Klammer auslesen, vom Übernehmen der Kommas ganz zu schweigen.
Hi,

ist das korrekt:

Zitat:einer Zeile

oder meinst Du eine Zelle?
Hallo BoskoBiati,

entschuldige bitte, ich hatte mich verschrieben.
Ich meinte eine Zelle. Blush

Anbei ein kurzes Beispiel.

Liebe Grüße
Franzi
Hallo,

ohne Kenntnis der Datei:

Code:
Sub F_en()
Dim RegEx As Object: Set RegEx = CreateObject("VBScript.RegExp")
Dim RR, r

RegEx.Pattern = "\((\w+)\)"
RegEx.Global = True

'in A1: Rot (red) Blatt (leaf), Baum (tree), alt (old)

Set RR = RegEx.Execute(Cells(1, 1))
For r = 0 To RR.Count - 1
    Debug.Print r, RR(r).submatches(0)
Next r

End Sub

mfg
Hi,

bei aktuellem Excel:
=TEXTVERKETTEN(" ";;TEXTNACH(TEXTTEILEN(WECHSELN(A2;"),";",)");")");"(";;;;""))

Bei älterem Excel verwendet man das CSE-Plugin von FlotterFeger, dann sollte die Formel ebenfalls funktionieren.
Hi,

vielen Dank ihr Lieben. Ihr seid klasse! 17

Eine Frage hätte ich noch:
Wie würde es denn umgekehrt funktionieren, also nur den Inhalt außerhalb der Klammern plus die Kommas auszugeben?
Geht dies auch?

Viele Grüße
Franzi
Hi,

das ist einfacher, weil man das Komma nicht in die Klammer WECHSELN() muss:

=TEXTVERKETTEN(" ";;TEXTVOR(TEXTTEILEN(A2;")");" (";;;;""))
Hi,

das ging fix, danke dir!
Blush
Nur eins noch, es sind dann teilweise noch zu viele Leerstellen enthalten (z.b. zwei Leerstellen zwischen den Wörtern und eine Leerstelle nach dem Komma, die eine Leerstelle nach dem Komma ist ja korrekt. (s. Beispieldatei in grün markiert).
Kann man die Formel so gestalten, dass diese auch im gleichen Schritt mit verbessert werden (ohne die Leerstelle nach dem Komma zu entfernen)?
Sorry, habe ich übersehen. Die muss man dann noch Wechseln() und Glätten():

=GLÄTTEN(WECHSELN(TEXTVERKETTEN(" ";;TEXTVOR(TEXTTEILEN(A2;")");" (";;;;""));" ,";","))

Statt Glätten könnte man auch nochmals Wechseln und zwar zwei Leerzeichen gegen eines.
Hi,
kein Problem danke dir!

Gibt es noch eine Möglichkeit die erste Formel (Klammerinhalt plus Kommas ausgeben) "robuster zu machen"?
Also wenn mal Leerstellen bei den Kommas oder beim Text auftauchen (s. Beispiel).

Viele Grüße
Franzi
Seiten: 1 2