E-Mail-Adressen aus Strings in Excel ausschneiden
Schritt-für-Schritt-Anleitung
Um eine E-Mail-Adresse aus einem String in Excel auszuschneiden, die zwischen dem vorletzten und letzten Komma steht, kannst du die folgende Formel verwenden:
=LINKS(TEIL(A1;FINDEN("|";WECHSELN(A1;",";"|";LÄNGE(A1)-LÄNGE(WECHSELN(A1;",";""))-1))+1;999); FINDEN("|";WECHSELN(TEIL(A1;FINDEN("|";WECHSELN(A1;",";"|";LÄNGE(A1)-LÄNGE(WECHSELN(A1;",";""))-1)) +1;999);",";"|"))-1)
- Text in Zelle A1 eingeben: Gib die Daten, aus denen du die E-Mail-Adresse extrahieren möchtest, in Zelle A1 ein.
- Formel in eine andere Zelle einfügen: Kopiere die oben angegebene Formel in eine andere Zelle (z. B. B1).
- Formatierung überprüfen: Stelle sicher, dass die Zelle, in die du die Formel eingefügt hast, nicht als Text formatiert ist. Dies kann dazu führen, dass die Formel nicht korrekt ausgeführt wird.
Häufige Fehler und Lösungen
- Formel wird als Text angezeigt: Überprüfe, ob die Zelle, in die du die Formel eingefügt hast, als "Standard" formatiert ist und nicht als "Text".
- Falsche E-Mail-Adresse wird angezeigt: Stelle sicher, dass die E-Mail-Adresse tatsächlich zwischen dem vorletzten und letzten Komma steht. Andernfalls könnte die Formel nicht die erwarteten Ergebnisse liefern.
Alternative Methoden
- Verwendung einer benutzerdefinierten Funktion (UDF): Wenn du mit VBA vertraut bist, kannst du eine benutzerdefinierte Funktion wie folgt erstellen:
Option Explicit
Function fncBananenSplit(strTMP As String) As String
Dim strZ() As String
strZ = Split(strTMP, ",")
fncBananenSplit = Trim(strZ(UBound(strZ) - 1))
End Function
- Reguläre Ausdrücke: Eine weitere Möglichkeit ist die Verwendung von regulären Ausdrücken, um die E-Mail-Adresse zu extrahieren. Hier ist ein Beispiel für eine Funktion, die dies tun kann:
Option Explicit
Function fncWerReitetSoSpaetDurchNachtUndWind(strText As String) As String
Dim objRegExp As Object
Dim objMatch As Object
On Error GoTo Fin
Set objRegExp = CreateObject("VbScript.Regexp")
With objRegExp
.Global = True
.Pattern = "[a-z0-9\-_]?[a-z0-9.\-_]+[a-z0-9\-_]?@[a-z.-]+\.[a-z]{2,}"
If .Test(strText) Then
Set objMatch = .Execute(strText)
fncWerReitetSoSpaetDurchNachtUndWind = objMatch(0).Value
Else
fncWerReitetSoSpaetDurchNachtUndWind = "Bitte Funktion überprüfen!"
End If
End With
Fin:
Set objMatch = Nothing
Set objRegExp = Nothing
End Function
Praktische Beispiele
Hier sind einige Beispiele, um die oben genannten Methoden zu veranschaulichen:
| Zelle |
Daten |
Formel |
Ergebnis |
| A1 |
asdasasd, 234234234, xcyxcyxc, qweqwqwe, a@b.de, asdasdasd |
=fncBananenSplit(A1) |
a@b.de |
| A2 |
asdasasd, b@c.de, asdasdasd |
=fncWerReitetSoSpaetDurchNachtUndWind(A2) |
b@c.de |
Tipps für Profis
- Nutze VBA: Wenn du regelmäßig E-Mail-Adressen aus Strings ausschneiden musst, kann die Erstellung einer benutzerdefinierten Funktion in VBA viel Zeit sparen.
- Reguläre Ausdrücke: Diese sind mächtig, um komplexe Textmuster zu erkennen, aber sei vorsichtig, da sie auch kompliziert sein können.
- Fehlersuche: Wenn das Ergebnis nicht wie erwartet ist, überprüfe die Formatierung der Zellen und die Eingabewerte genau.
FAQ: Häufige Fragen
1. Warum funktioniert die Formel nicht?
Es könnte sein, dass die Zelle als Text formatiert ist oder der Text nicht die erwarteten Kommas hat. Überprüfe die Formatierung und den Inhalt der Zelle.
2. Kann ich die Methode auch für andere Strings verwenden?
Ja, die vorgestellten Funktionen sind flexibel und können für verschiedene Arten von Strings verwendet werden, solange du die Trennzeichen entsprechend anpasst.