Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Reguläre Ausdrücke ersetzen in Excel

Forumthread: Reguläre Ausdrücke ersetzen in Excel

Reguläre Ausdrücke ersetzen in Excel
23.10.2006 13:29:15
chris
Hallo,
ich möchte im Rahmen eines "Daten aus einem Wust"-Filterprozess einige Ersetzungen machen. Momentan kopiere ich die Daten in einen Editor und mache die Ersetzungen. Gibt es auch in Excel eine mir unbekannte Möglichkeit reguläre Ausdrücke anzuwenden. Ich benötige z.B. .> löschen etc. Mir ist klar, dass ich es auch mit einigen Schleifen über InStr machen kann, aber das ist doch sehr aufwendig.
Für Hilfe wäre ich sehr dankbar
Gruß,
Christian
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Reguläre Ausdrücke ersetzen in Excel
ransi
HAllo
Gibt es auch in Excel eine mir unbekannte Möglichkeit reguläre Ausdrücke anzuwenden.

Ich weiss nicht welche Möglichkeiten du alle kennst, aber mit Regulären Ausdrücken (RegExp), kannst du in Excel auch arbeiten.
Hier mal ein einfaches Beispiel aus der Hilfe:


Option Explicit
Public Sub test()
MsgBox ReplaceDemo("Taxi""Auto"' Ersetzt 'Taxi' durch 'Auto'.
End Sub
Function ReplaceDemo(Suchmuster, ErsatzZf)
Dim regAusdr
Dim Zf1 As String  ' Variablen erstellen.
Zf1 = "Franz jagt im komplett verwahrlosten Taxi quer durch Bayern."
Set regAusdr = CreateObject("VBscript.regexp"'Erstellt einen regulären Ausdruck.
With regAusdr
.Pattern = Suchmuster  ' Legt das Suchmuster fest.
    .IgnoreCase = True ' Ignoriert die Groß-/Kleinschreibung.
    .Global = True     ' Legt globales Anwenden fest.
    ReplaceDemo = .Replace(Zf1, ErsatzZf) ' Führt die Ersetzung durch.
End With
End Function


ransi
Anzeige
AW: Reguläre Ausdrücke ersetzen in Excel
23.10.2006 15:08:58
Daniel
Hallo,
wenn du die Daten in Zellen kopieren kannst, kannst du z.B. die Normalen Excelfunktionen wie z.B. BEARBEITEN-ERSETZEN verwenden.
Das wäre dann: range("A1").replace(what:=".....)
die genaue Syntax erhälst du am einfachsten mit dem Recorder.
Falls du den Text als Variable vorliegen hast, kannst du auch
WorksheetFunction.Substitute("Hallo","l","L") verwenden.
Dies würde z.B. das Ergebnis "HaLLo" ergeben.
Parameter sind die gleichen wie in der Excel-Funktion "Wechseln"
Gruß, Daniel
Anzeige
AW: Reguläre Ausdrücke ersetzen in Excel
23.10.2006 15:34:04
bst
Hi Daniel,
auch wenn Range().Replace * und ? kennt, so sind das noch lange keine regulären Ausdrücke...
http://de.wikipedia.org/wiki/Regexp
cu, Bernd
AW: Reguläre Ausdrücke ersetzen in Excel
23.10.2006 18:32:09
Daniel
Sorry, da habe ich wohl was verwechselt.
Gruß, Daniel
;
Anzeige
Anzeige

Infobox / Tutorial

Reguläre Ausdrücke in Excel effektiv nutzen


Schritt-für-Schritt-Anleitung

Um reguläre Ausdrücke in Excel zu verwenden, benötigst du VBA (Visual Basic for Applications). Hier ist eine einfache Anleitung, wie du dies umsetzen kannst:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. Füge den folgenden Code ein:

    Option Explicit
    
    Public Sub test()
       MsgBox ReplaceDemo("Taxi", "Auto") ' Ersetzt 'Taxi' durch 'Auto'.
    End Sub
    
    Function ReplaceDemo(Suchmuster As String, ErsatzZf As String) As String
       Dim regAusdr As Object
       Dim Zf1 As String
    
       Zf1 = "Franz jagt im komplett verwahrlosten Taxi quer durch Bayern."
       Set regAusdr = CreateObject("VBscript.regexp")
    
       With regAusdr
           .Pattern = Suchmuster ' Legt das Suchmuster fest.
           .IgnoreCase = True ' Ignoriert die Groß-/Kleinschreibung.
           .Global = True ' Legt globales Anwenden fest.
           ReplaceDemo = .Replace(Zf1, ErsatzZf) ' Führt die Ersetzung durch.
       End With
    End Function
  4. Führe die Funktion aus:

    • Du kannst die Funktion test ausführen, um die Ersetzung zu testen.

Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"

    • Lösung: Stelle sicher, dass der VBscript.regexp Objekt korrekt erstellt wurde. Überprüfe, ob du die korrekte Syntax verwendest.
  • Fehler: Ersetzung funktioniert nicht

    • Lösung: Überprüfe das Suchmuster auf Fehler. Reguläre Ausdrücke sind sehr präzise und erfordern die genaue Übereinstimmung.

Alternative Methoden

Falls du keine VBA nutzen möchtest, gibt es auch einige Excel-Funktionen, die hilfreich sein können:

  • SUBSTITUTE: Diese Funktion ersetzt Teiltexte in einer Zelle.

    Beispiel:

    =SUBSTITUTE(A1, "l", "L")
  • REPLACE: Diese Funktion kann verwendet werden, um Zeichen an bestimmten Positionen zu ersetzen.

Es ist jedoch wichtig zu beachten, dass diese Funktionen keine regulären Ausdrücke unterstützen.


Praktische Beispiele

Hier sind einige Beispiele, wie du reguläre Ausdrücke in Excel einsetzen kannst:

  1. E-Mail-Adressen filtern:

    Function FilterEmails(text As String) As String
       Dim regAusdr As Object
       Set regAusdr = CreateObject("VBscript.regexp")
       regAusdr.Pattern = "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\b"
       regAusdr.Global = True
       FilterEmails = regAusdr.Replace(text, "")
    End Function
  2. Bestimmte Zeichen entfernen:

    Function RemoveSpecialChars(text As String) As String
       Dim regAusdr As Object
       Set regAusdr = CreateObject("VBscript.regexp")
       regAusdr.Pattern = "[^a-zA-Z0-9]"
       regAusdr.Global = True
       RemoveSpecialChars = regAusdr.Replace(text, "")
    End Function

Tipps für Profis

  • Nutze die Global-Option: Wenn du alle Vorkommen eines Musters ersetzen möchtest, stelle sicher, dass die .Global-Eigenschaft auf True gesetzt ist.

  • Testen mit verschiedenen Mustern: Experimentiere mit verschiedenen regulären Ausdrücken, um die besten Ergebnisse zu erzielen. Du kannst Online-Tools nutzen, um deine regulären Ausdrücke zu testen, bevor du sie in Excel anwendest.

  • Dokumentation lesen: Informiere dich über die spezifischen Syntax und Möglichkeiten von regulären Ausdrücken, um ihre volle Kraft auszuschöpfen.


FAQ: Häufige Fragen

1. Kann ich reguläre Ausdrücke in Excel ohne VBA verwenden? Nein, reguläre Ausdrücke sind in Excel nicht direkt verfügbar. Du musst VBA verwenden, um sie zu implementieren.

2. Was ist der Unterschied zwischen REPLACE und SUBSTITUTE? REPLACE ersetzt Zeichen an bestimmten Positionen, während SUBSTITUTE bestimmte Teiltexte in einem Text ersetzt, ohne die Position zu berücksichtigen.

3. Wo finde ich Beispiele für reguläre Ausdrücke? Es gibt viele Online-Ressourcen, die Beispiele für reguläre Ausdrücke bieten. Auch viele Programmierforen und Dokumentationen sind hilfreich.

4. Wie kann ich reguläre Ausdrücke in verschiedenen Excel-Versionen verwenden? Die Verwendung von regulären Ausdrücken ist in VBA unabhängig von der Excel-Version, solange du die VBA-Umgebung nutzen kannst. Es wird jedoch empfohlen, die neuesten Excel-Versionen zu verwenden, um von aktuellen Features zu profitieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige