Excel: Wort zwischen zwei Zeichen auslesen lassen?

4 Antworten

So vielleicht

=TEIL(C15;SUCHEN("@";C15)+1;SUCHEN((RECHTS("."));C15)-SUCHEN("@";C15)-1)

Der Weg war gut: Einmal SUCHEN dazu und schon geht es.

=TEIL(I13;FINDEN("@";I13)+1;SUCHEN(".";I13;SUCHEN(".";I13)+1)-FINDEN("@";I13)-1)

Suchen hat ein drittes Argument ab dem du suchst. Du sagst also suche erst ab dem ersten Punkt+1


augsburgchris  07.10.2020, 10:54

=TEIL(C15;FINDEN("@";C15)+1;SUCHEN(".";C15;SUCHEN(".";C15)+1)-FINDEN("@";C15)-1)

2
geri3d  07.10.2020, 11:03

Dein Beispiel hinkt, es erwartet jetzt, dass ein Punkt im vorderen Teil der Email sein muss.

0
augsburgchris  07.10.2020, 11:27
@geri3d

Du meinst sowas wie schnurzelpurzel23@t-online.de

Was wäre dein Vorschlag diesbezüglich?

1

Ich kann diese Formel als Lösung anbieten, die mit beliebig vielen Punkten in der Adresse umgehen kan:

=TEIL(A1;FINDEN("@";A1)+1;FINDEN(".";A1;LÄNGE(A1)-4)-FINDEN("@";A1)-1)

Den wichtigen, letzten "." suche ich gezielt ab dem vierten Zeichen vor dem Ende der Emailadresse, da die Toplevel Domain meines Wissens nie länger als drei Zeichen ist.

Etwas unsicher bin ich bei englischen Adressen, die häufig mit .co.uk enden. Soll das ".co" mit zum Firmennamen gerechnet werden oder nicht?

Freue mich auf Feedback.


augsburgchris  07.10.2020, 11:53

twoje@tvp.info

*ggg*

3
Hannes62a  07.10.2020, 12:06
@augsburgchris

An .Info habe ich nicht gedacht. Good point!

Dann sollte es mit -5 statt -4 aber funktionieren. ".co.UK" wird so komplett abgeschnitten, was ja vielleicht sogar gewünscht ist.

1

Aubauend auf den anderen Antworten und dem was du selber hast eine flexieble Lösung die auch bei einem oder keinem Punkt Funktioniert:

=WENN(FINDEN("@";C15)<FINDEN(".";C15);TEIL(C15;FINDEN("@";C15)+1;SUCHEN(".";C15)-FINDEN("@";C15)-1);TEIL(C15;FINDEN("@";C15)+1;SUCHEN(".";C15;SUCHEN(".";C15)+1)-FINDEN("@";C15)-1))

Das geht aber nur so lange gut, bis eine Email mit 2 Punkten vor dem @ auftaucht aber da gäbe es auch eine Lösung in VBA die sieht so aus:

Visual Basic Editor öffnen mit ALT + F11 und dann im Menü Einfügen "Modul" wählen und folgenden Code einfügen:

Function FIRMAEMAIL(email)
sResult = Mid(email, InStr(1, email, "@") + 1, Len(email))
sResult = Left(sResult, InStrRev(sResult, "."))
FIRMAEMAIL = sResult
End Function

Danach kannst du die Funktion als Formel verwenden

=FIRMAEMAIL(C15)

Diese Lösung ignoriert alle Punkte vor dem @, es dürfen nur ein Punkt in der Hostadresse stehen.

Screenshot:

Bild zum Beitrag

Woher ich das weiß:eigene Erfahrung
 - (Microsoft, Microsoft Excel, Office)

augsburgchris  07.10.2020, 11:45

Gute Idee:

deine VBA kann aber auch in einer Formel stehen:

=LINKS(TEIL(C15;FINDEN("@";C15)+1;9999);LÄNGE(TEIL(C15;FINDEN("@";C15)+1;9999))-(LÄNGE(TEIL(C15;FINDEN("@";C15)+1;9999))-FINDEN(".";TEIL(C15;FINDEN("@";C15)+1;9999))+1))

2
augsburgchris  07.10.2020, 11:56
@geri3d

Ich auch, aber solange es mit Bordmitteln geht versuche ich es so zu lösen.

Das ist sonst immer so, als würde der Jäger mit ner Atombombe zum Hasenjagen geht.

2
geri3d  07.10.2020, 11:59
@augsburgchris

Für mich sind es Bordmittel aber du hast recht Excel ist Spitze in Formeln und VBA ist eigentlich nur dazu da Sachen zu machen die mit Formel unmöglich sind, quasi alles was man mit Maus und Tastatur und Umgebung hinbekommt.

2
geri3d  07.10.2020, 11:46

Ergänzung: Damit gehen alle Adresse auch co.uk und gov.at

Function FIRMAEMAIL(email)
Dim sArray() As String
sResult = Mid(email, InStr(1, email, "@") + 1, Len(email))
sArray = Split(sResult, ".")
sResult = sArray(0)
FIRMAEMAIL = sResult
End Function


0