Note: The other languages of the website are Google-translated. Back to English

Hoe snel een e-mailadres uit een tekstreeks halen?

Wanneer u enkele e-mailadressen van het Website naar Excel-werkblad importeert, bevat deze altijd irrelevante tekst, maar nu wilt u alleen de pure e-mailadressen uit de tekstreeks extraheren (zie volgende schermafbeeldingen). Hoe kon je snel alleen de e-mailadressen uit de celtekst halen?

doc-extract-e-mails1 -2 doc-extract-e-mails2

Haal het e-mailadres uit de tekstreeks met formule

Haal het e-mailadres uit de tekstreeks met de door de gebruiker gedefinieerde functie

Extraheer het e-mailadres uit de tekstreeks met VBA-code

Extraheer het e-mailadres uit de tekstreeks met Kutools voor Excel


pijl blauw rechts bel Haal het e-mailadres uit de tekstreeks met formule

Hier introduceer ik je een lange formule om alleen de e-mailadressen uit de tekst in Excel te extraheren. Ga als volgt te werk:

1. Voer deze formule in de aangrenzende cel B1 in = TRIM (RECHTS (SUBSTITUTE (LEFT (A1, FIND ("", A1 & "", FIND ("@", A1)) - 1), "", REPT ("", LEN (A1))), LEN ( A1))).

doc-extract-e-mails3

2. Druk vervolgens op Enter -toets, selecteer vervolgens cel B1 en sleep de vulgreep naar het bereik waarin u deze formule wilt opnemen. En de e-mailadressen in het bereik zijn uit de tekstreeks gehaald. Zie screenshot:

doc-extract-e-mails4

Opmerkingen:

1. De leestekens achter het e-mailadres worden ook geëxtraheerd.

2. Als de cellen de e-mailadressen niet bevatten, geeft de formule foutwaarden weer.

3. Als een cel meer dan één e-mailadres bevat, extraheert de formule alleen het eerste adres.


Extraheer meerdere e-mailadressen uit tekstreeksen

Kutools for Excel's Extract e-mailadres kan u helpen om de e-mailadressen snel en gemakkelijk uit de tekstreeksen te halen. Klik om Kutools voor Excel te downloaden!

doc extract e-mails-1

Kutools for Excel: met meer dan 300 handige Excel-invoegtoepassingen, gratis te proberen zonder beperking in 30 dagen. Download en probeer nu gratis!


pijl blauw rechts bel Haal het e-mailadres uit de tekstreeks met de door de gebruiker gedefinieerde functie

Behalve de bovenstaande formule, kan een door de gebruiker gedefinieerde functie u ook helpen het e-mailadres uit de tekstreeks te halen.

1. Houd de ALT + F11 toetsen, en het opent de Microsoft Visual Basic voor toepassingen venster.

2. Klikken Invoegen > Moduleen plak de volgende macro in het modulevenster.

Function ExtractEmailFun(extractStr As String) As String
'Update by extendoffice
Dim CharList As String
On Error Resume Next
CheckStr = "[A-Za-z0-9._-]"
OutStr = ""
Index = 1
Do While True
    Index1 = VBA.InStr(Index, extractStr, "@")
    getStr = ""
    If Index1 > 0 Then
        For p = Index1 - 1 To 1 Step -1
            If Mid(extractStr, p, 1) Like CheckStr Then
                getStr = Mid(extractStr, p, 1) & getStr
            Else
                Exit For
            End If
        Next
        getStr = getStr & "@"
        For p = Index1 + 1 To Len(extractStr)
            If Mid(extractStr, p, 1) Like CheckStr Then
                getStr = getStr & Mid(extractStr, p, 1)
            Else
                Exit For
            End If
        Next
        Index = Index1 + 1
        If OutStr = "" Then
            OutStr = getStr
        Else
            OutStr = OutStr & Chr(10) & getStr
        End If
    Else
        Exit Do
    End If
Loop
ExtractEmailFun = OutStr
End Function

3. Sla vervolgens de code op en voer de formule in = ExtractEmailFun (A1) zie screenshot in een aangrenzende lege cel:

doc-extract-e-mails5

4. En druk vervolgens op Enter -toets, selecteer de cel B1 en sleep de vulgreep naar het bereik waarvoor u de formule nodig hebt. En alle e-mailadressen zijn uit de celtekst gehaald. Zie screenshot:

doc-extract-e-mails6

Opmerkingen:

1. Als de cellen geen e-mailadressen hebben, worden er lege cellen weergegeven.

2. Als er meer dan één e-mailadres in een cel staat, worden alle e-mails uitgepakt.


pijl blauw rechts bel Extraheer het e-mailadres uit de tekstreeks met VBA-code

Als u denkt dat bovenstaande formules lastig voor u zijn, kan de volgende VBA-code u helpen de e-mailadressen op één adres te extraheren.

1. Houd de ALT + F11 toetsen, en het opent een Microsoft Visual Basic voor toepassingen venster.

2. Klikken Invoegen > Moduleen plak de volgende macro in het Module venster.

VBA: haal e-mailadressen uit een tekstreeks

Sub ExtractEmail()
'Update 20130829
Dim WorkRng As Range
Dim arr As Variant
Dim CharList As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
arr = WorkRng.Value
CheckStr = "[A-Za-z0-9._-]"
For i = 1 To UBound(arr, 1)
    For j = 1 To UBound(arr, 2)
        extractStr = arr(i, j)
        outStr = ""
        Index = 1
        Do While True
            Index1 = VBA.InStr(Index, extractStr, "@")
            getStr = ""
            If Index1 > 0 Then
                For p = Index1 - 1 To 1 Step -1
                    If Mid(extractStr, p, 1) Like CheckStr Then
                        getStr = Mid(extractStr, p, 1) & getStr
                    Else
                        Exit For
                    End If
                Next
                getStr = getStr & "@"
                For p = Index1 + 1 To Len(extractStr)
                    If Mid(extractStr, p, 1) Like CheckStr Then
                        getStr = getStr & Mid(extractStr, p, 1)
                    Else
                        Exit For
                    End If
                Next
                Index = Index1 + 1
                If outStr = "" Then
                    outStr = getStr
                Else
                    outStr = outStr & Chr(10) & getStr
                End If
            Else
                Exit Do
            End If
        Loop
        arr(i, j) = outStr
    Next
Next
WorkRng.Value = arr
End Sub

3. Druk dan op F5 sleutel om deze code uit te voeren, en je zou een bereik moeten selecteren dat je de VBA wilt gebruiken in het uitgeklapte dialoogvenster, zie screenshot:

doc-extract-e-mails7

4. Dan klikken OK, en de e-mailadressen zijn geëxtraheerd uit de geselecteerde tekstreeksen. Zie screenshots:

doc-extract-e-mails8 -2 doc-extract-e-mails9

Opmerkingen:

1. Als de cellen geen e-mailadressen hebben, worden lege cellen weergegeven.

2. Alle e-mails worden uitgepakt als er meer dan één e-mailadres in een cel staat.

3. De geëxtraheerde e-mails hebben betrekking op de originele gegevens, dus u kunt beter eerst een back-up van de gegevens maken als dat nodig is.


pijl blauw rechts bel Extraheer het e-mailadres uit de tekstreeks met Kutools voor Excel met één klik

De bovenstaande methoden zien er enigszins ingewikkeld uit voor onze Excel-beginner, hier kan ik u een snelle en gemakkelijke tool aanbevelen- Kutools for Excel, Met Extract e-mailadres hulpprogramma, kunt u de e-mailadressen zonder veel moeite uit de tekstreeksen halen.

Kutools for Excel : met meer dan 300 handige Excel-invoegtoepassingen, gratis te proberen zonder beperking in 30 dagen.

Als je hebt geïnstalleerd Kutools for Excelgaat u als volgt te werk:

1. Selecteer de cellen die de tekstreeksen bevatten.

2. Klikken Kutools > Tekst > Extract e-mailadres, zie screenshot:

3. En een Extract e-mailadres dialoogvenster verschijnt, selecteer een cel waarin u het resultaat wilt plaatsen, zie screenshot:

doc-extract-e-mails9

4. Dan klikken OK knop, zijn alle e-mailadressen uit de tekstreeksen gehaald, zie screenshot:

doc-extract-e-mails9

Klik om Kutools voor Excel nu te downloaden en gratis uit te proberen!


pijl blauw rechts bel Demo: extraheer het e-mailadres uit de tekstreeks met Kutools voor Excel

Kutools for Excel: met meer dan 300 handige Excel-invoegtoepassingen, gratis te proberen zonder beperking in 30 dagen. Download en probeer nu gratis!

Gerelateerd artikel:

Hoe domeinen uit meerdere e-mailadressen extraheren in Excel?


De beste tools voor kantoorproductiviteit

Kutools voor Excel lost de meeste van uw problemen op en verhoogt uw productiviteit met 80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Versleutel cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula-balk (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken in gefilterd bereik...
  • Voeg cellen / rijen / kolommen samen zonder gegevens te verliezen; Gespleten cellen inhoud; Combineer dubbele rijen / kolommen... Voorkom dubbele cellen; Vergelijk Ranges...
  • Selecteer Dupliceren of Uniek Rijen; Selecteer lege rijen (alle cellen zijn leeg); Super zoeken en fuzzy zoeken in veel werkboeken; Willekeurige selectie ...
  • Exacte kopie Meerdere cellen zonder de formuleverwijzing te wijzigen; Maak automatisch verwijzingen naar meerdere bladen; Plaats kogels, Selectievakjes en meer ...
  • Extraheer tekst, Tekst toevoegen, Verwijderen op positie, Ruimte verwijderen; Paging-subtotalen maken en afdrukken; Converteren tussen celinhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerd sorteren per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Meer dan 300 krachtige functies. Ondersteunt Office / Excel 2007-2019 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Gratis proefperiode van 30 dagen met volledige functies. 60 dagen geld-terug-garantie.
kte tabblad 201905

Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert elke dag honderden muisklikken!
officetab onderkant
Comments (40)
Nog geen beoordelingen. Beoordeel als eerste!
Deze opmerking is gemaakt door de moderator op de site
LUL GEBRUIK DEZE CODE VOOR E-MAILEXTRACT. Sub lula() Dim d1 As Variant cntr = 0 rowstring = ActiveCell.Offset(0, 0).Waarde d1 = Split(rowstring, " ") Do 'MsgBox d1(cntr) cntr = cntr + 1 If d1(cntr) = "" Dan GoTo ttt If InStr(d1(cntr), "@") Then MsgBox d1(cntr) GoTo ttt End If Loop While d1(cntr) "" ttt: End Sub
Deze opmerking is gemaakt door de moderator op de site
erg behulpzaam, bedankt!
Deze opmerking is gemaakt door de moderator op de site
Bedankt voor deze formule! Je hebt me zojuist een hoop werk bespaard - ik moest 1500 e-mails extraheren uit een slecht geschreven Excel-blad voor een e-mailmarketinglijst. Toen ik eindelijk je formule had gevonden, was het een fluitje van een cent.
Deze opmerking is gemaakt door de moderator op de site
Geweldige code! Echt nuttig. Helaas voegt het meerdere e-mailadressen samen in plaats van ze nuttig te scheiden, bijvoorbeeld met een puntkomma. Hoe zou je een scheidingsteken toevoegen?
Deze opmerking is gemaakt door de moderator op de site
geen VBA alleen formule die in cel moet worden geplakt Verander gewoon de verwijzingen (het onderstaande voorbeeld kijkt naar cel A1) =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT( " ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@",A1) )
Deze opmerking is gemaakt door de moderator op de site
[quote]... =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT(" ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@",A1))Door mij[/quote] Bedankt "ME", werkt letterlijk in Google-spreadsheet!
Deze opmerking is gemaakt door de moderator op de site
[quote]geen VBA alleen formule die in cel moet worden geplakt Verander gewoon de verwijzingen (het onderstaande voorbeeld kijkt naar cel A1) =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," " ,REPT(" ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@" ,A1))Door mij[/quote] Dank je. Het werkte voor mij.
Deze opmerking is gemaakt door de moderator op de site
Verbazingwekkend! Met vriendelijke groeten voor VBS-script! BEDANKT!
Deze opmerking is gemaakt door de moderator op de site
Heel erg bedankt, dit is erg handig!
Deze opmerking is gemaakt door de moderator op de site
Dit is geweldig, maar nu heb ik een probleem. Er is een spatie in plaats van een punt tussen alle e-mailadressen (dwz abcd@aol com), dus de formule plaatst niet het einde van alle e-mailadressen (.net, .com, enz.) in de nieuwe kolom. Hoe kan ik dit oplossen?
Deze opmerking is gemaakt door de moderator op de site
Hallo allemaal, ik was ook op zoek naar een manier om de e-mailadressen te scheiden, zodat ik het in Outlook kon zetten. Ik heb een "; "-scheidingsteken toegevoegd tussen de e-mailadressen zodat ze niet naast elkaar lopen. Laat me weten wat je denkt. Dank aan de auteur van het origineel om dit voor elkaar te krijgen! Functie ExtractEmailFun(extractStr As String) As String 'Update 20150723 Dim CharList As String On Error Hervat Volgende CheckStr = "[A-Za-z0-9._-]" ExtractEmailFun = "" Index = 1 Do While True Index1 = VBA. InStr(Index, extractStr, "@") getStr = "" Als Index1 > 0 Dan Voor p = Index1 - 1 Naar 1 Stap -1 If Mid(extractStr, p, 1) Like CheckStr Dan getStr = Mid(extractStr, p, 1) & getStr Anders Exit For End If Next getStr = getStr & "@" For p = Index1 + 1 To Len(extractStr) If Mid(extractStr, p, 1) Like CheckStr Dan getStr = getStr & Mid(extractStr, p, 1) Else getStr = getStr Exit For End If Next Index = Index1 + 1 getStr = getStr & "; " If ExtractEmailFun = "" Then ExtractEmailFun = getStr Anders ExtractEmailFun = ExtractEmailFun & Chr(10) & getStr End Als anders Exit Do End If Loop End-functie
Deze opmerking is gemaakt door de moderator op de site
Met dank aan de auteur van het originele script; Ik ging door en voegde een "; "-scheidingsteken toe tussen meerdere e-mailadressen. Functie ExtractEmailFun(extractStr As String) As String 'Update 20150723 Dim CharList As String On Error Hervat Volgende CheckStr = "[A-Za-z0-9._-]" ExtractEmailFun = "" Index = 1 Do While True Index1 = VBA. InStr(Index, extractStr, "@") getStr = "" Als Index1 > 0 Dan Voor p = Index1 - 1 Naar 1 Stap -1 If Mid(extractStr, p, 1) Like CheckStr Dan getStr = Mid(extractStr, p, 1) & getStr Anders Exit For End If Next getStr = getStr & "@" For p = Index1 + 1 To Len(extractStr) If Mid(extractStr, p, 1) Like CheckStr Dan getStr = getStr & Mid(extractStr, p, 1) Else getStr = getStr Exit For End If Next Index = Index1 + 1 getStr = getStr & "; " If ExtractEmailFun = "" Then ExtractEmailFun = getStr Anders ExtractEmailFun = ExtractEmailFun & Chr(10) & getStr End Als anders Exit Do End If Loop End-functie
Deze opmerking is gemaakt door de moderator op de site
Dit is goed! bedankt.
Deze opmerking is gemaakt door de moderator op de site
Broeder, je bent echt geniaal. Onderstaande formule werkte voor mij en bespaarde handmatige interventie die vroeger uren duurde =TRIM(RIGHT(SUBSTITUTE(LEFT(H2,FIND ("",H2&" ",FIND("@",H2))-1)," ", REPT(" ",LEN(H2))),LEN(H2))) God zegene u
Deze opmerking is gemaakt door de moderator op de site
ik heb meer informatie nodig over het extraheren van e-mails
Deze opmerking is gemaakt door de moderator op de site
Geachte heer, Hoe kan ik de juiste e-mail-ID's uit mijn onderstaande e-maillijst halen a.hamilton@tradsingapore.com.sg aarabest@emirates.com.net.ae admin@countrywide.com.my
Deze opmerking is gemaakt door de moderator op de site
aangezien de formule een grote hulp voor mij is geweest, dacht ik dat ik mijn ervaring zou delen. Ik voer het uit tegen een lijst met html-webscrapes die soms zo lang zijn dat de formule fouten maakt. Volgens wikipedia is de maximale lengte van een e-mailadres 254 tekens, dus het vervangen van de len(A1)-gedeelten door 256 verbetert de stabiliteit van de functie: =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND ("",A1&" ", FIND("@",A1))-1)," ", HERHALEN(" ",256)),256))
Deze opmerking is gemaakt door de moderator op de site
Uitstekend, geweldig. iedereen zou moeten gebruiken..
Deze opmerking is gemaakt door de moderator op de site
Als ik slechts één e-mailadres uit A1 wil halen, doet deze formule dat en rapporteert alleen een blanco, geen fout, als A1 geen e-mailadres bevat. Ik vind dit een eenvoudigere oplossing dan proberen al deze scripts onder de knie te krijgen, en het kost niets. =IFERROR(TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND(" ",A1&" ",FIND("@",A1))-1)," ",REPT(" ",LEN(A1))), LENTE (A1))),"")
Deze opmerking is gemaakt door de moderator op de site
Uiterst behulpzaam. Hartelijk bedankt!!
Deze opmerking is gemaakt door de moderator op de site
Geweldige informatie! Bedankt
Deze opmerking is gemaakt door de moderator op de site
Ik gebruik Excel 2007 op een HP. Als je Melanie Brown in A1 hebt en je wilt dat Melanie.Brown@gmail.com in dezelfde cel wordt gelezen, hoe bereik je dit dan? Ik heb een reeks manen om op dezelfde manier te doen. Kan iemand mij hierbij helpen?
Er zijn nog geen reacties geplaatst
Laad meer
Laat uw commentaar
Posten als gast
×
Beoordeel dit bericht:
0   Personages
Voorgestelde locaties