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?
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))).
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:
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!
Kutools for Excel: met meer dan 300 handige Excel-invoegtoepassingen, gratis te proberen zonder beperking in 30 dagen. Download en probeer nu gratis!
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:
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:
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.
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:
4. Dan klikken OK, en de e-mailadressen zijn geëxtraheerd uit de geselecteerde tekstreeksen. Zie screenshots:
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.
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:
4. Dan klikken OK knop, zijn alle e-mailadressen uit de tekstreeksen gehaald, zie screenshot:
Klik om Kutools voor Excel nu te downloaden en gratis uit te proberen!
Demo: extraheer het e-mailadres uit de tekstreeks met Kutools voor Excel
Gerelateerd artikel:
Hoe domeinen uit meerdere e-mailadressen extraheren in Excel?
Beste Office-productiviteitstools
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie als nooit tevoren. Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en tijd te besparen. Klik hier om de functie te krijgen die u het meest nodig heeft...
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 honderden muisklikken voor u elke dag!