Extrahieren von E-Mails aus Textzeichenfolgen in Excel / Google-Tabellen

9

Ich möchte E-Mail-Adressen aus Textzeichenfolgen in Google Text & Tabellen extrahieren und automatisch per E-Mail versenden, wobei der Inhalt der Zellen derzeit unbekannt ist (bis er vom Benutzer aktualisiert wird).

Zum Beispiel könnten sie lesen:

  1. Hallo,

    Mein Freund [email protected].

    Vielen Dank,

    Beispiel Joe

ODER

  1. Du solltest fragen

    [email protected]

Ich habe derzeit diese Formel:

=IFERROR((LEFT(CELL,FIND("@",CELL)-1))&"@"&(regexextract(CELL,"@(.*)"))) 

Es funktioniert in fast allen Fällen, außer

a) wie in Beispiel 1, wo jemand ein oder setzt. am Ende der E-Mail

b) Wie in Beispiel 2, wenn die E-Mail in einer neuen Zeile beginnt, wird sie als z.

Fragen

[email protected]

Wie kann ich die Formel anpassen, um diese zu korrigieren?

Tom
quelle

Antworten:

7

Für Google Spreadsheets

Google Spreadsheets bietet diese coolen, bereits integrierten Regex-Formeln

Wir verwenden die erste, um E-Mail-Adressen zu extrahieren. Fügen Sie diese Formel in eine Google Spreadsheet-Zelle ein:

=iferror(Regexextract(A1;"[A-z0-9._%+-]+@[A-z0-9.-]+\.[A-z]{2,4}");"")
  • A1 ist die Zelle, in der sich die zu überprüfende Zeichenfolge (in Ihrem Fall der E-Mail-Text) befinden soll
  • Komplette Formel besteht aus 2 Teilen. Der innere Teil ist die Regex-Formel und der äußere Teil dient der Fehlervermeidung
  • Regexextract(A1,"\[A-z0-9._%+-\]+@\[A-z0-9.-\]+\.\[A-z\]{2,4}") gibt die E-Mail-Adresse zurück
  • iferror(innerformula,"")verhindert, #N/Awenn die Regex-Formel nichts zurückgeben konnte, z. B. keine gültige E-Mail-Adresse gefunden wurde

Geben Sie hier die Bildbeschreibung ein

Wie funktioniert das Regex-Muster?

[A-z0-9 ._% + -] + @ [A-z0-9 .-] +. [Az] {2,4}

  • A-zrepräsentiert ein beliebiges Zeichen zwischen an Aund a z.
    Beachten Sie die Groß- und Kleinschreibung. Auf diese Weise wird die Groß- und Kleinschreibung nicht berücksichtigt
  • 0-9 repräsentiert eine beliebige Ziffer
  • ._%+- repräsentieren diese Zeichen selbst
  • [ ] stellt ein einzelnes Zeichen dar, das in den Klammern zulässig ist
  • Wenn Sie ein +Zeichen dahinter setzen, [ ]kann das vorherige Muster unendlich oft wiederholt werden
  • @hat keine besondere Bedeutung. Es sucht buchstäblich nach einem @Zeichen
  • [A-z0-9.-]+ist das gleiche wie oben. Aber diesmal _%+dürfen sie nicht hinter einem @Schild stehen
  • \.sucht nach einem einzelnen Punkt. Es muss mit einem Vorgänger maskiert werden, \da .normalerweise ein Platzhalter ein beliebiges Zeichen ist
  • [A-z]{2,4}Sucht zuletzt nach 2,3 oder 4 Zeichen, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wird

Gebrauchte Ressourcen

Nixda
quelle
Vielen Dank für Ihre hilfreiche Antwort. Ein Gedanke, den ich hatte, ist, dass {2, 4}dies einschränkend sein könnte, da viele kommende TLDs wie .codes4 Zeichen überschreiten.
Alex Booker
1

Dies ist für Excel.

Betrachten Sie die folgende benutzerdefinierte Funktion (UDF):

Public Function GetEmailAddy(Sin As String) As String
    Dim s As String
    If InStr(1, Sin, "@") = 0 Then
        GetEmailAddy = ""
        Exit Function
    End If

    s = Replace(Sin, Chr(10), " ")
    s = Replace(s, Chr(13), " ")
    s = Application.WorksheetFunction.Trim(s)
    ary = Split(s, " ")

    For Each a In ary
        If InStr(1, a, "@") > 0 Then
            GetEmailAddy = a
            Exit Function
        End If
    Next a
End Function

Benutzerdefinierte Funktionen (UDFs) sind sehr einfach zu installieren und zu verwenden:

  1. ALT-F11 öffnet das VBE-Fenster
  2. ALT-I ALT-M öffnet ein neues Modul
  3. Fügen Sie das Material ein und schließen Sie das VBE-Fenster

Wenn Sie die Arbeitsmappe speichern, wird die UDF damit gespeichert. Wenn Sie später als 2003 eine Excel-Version verwenden, müssen Sie die Datei als XLSM und nicht als XLSX speichern

So entfernen Sie die UDF:

  1. Rufen Sie das VBE-Fenster wie oben auf
  2. Löschen Sie den Code
  3. Schließen Sie das VBE-Fenster

So verwenden Sie die UDF aus Excel:

=GetEmailAddy(A1)

Weitere Informationen zu Makros im Allgemeinen finden Sie unter:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

und

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Einzelheiten zu UDFs finden Sie unter:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

Damit dies funktioniert, müssen Makros aktiviert sein!

Hier sind einige Beispiele:

Geben Sie hier die Bildbeschreibung ein

Garys Schüler
quelle