Udtræk hurtigt e-mailadresse fra tekststreng i Excel - En komplet vejledning
Når du beskæftiger dig med importerede data eller blandede tekststrenge i Excel, kan du opleve, at du har brug for at udtrække e-mail-adresser hurtigt og præcist. Uanset om du arbejder med en liste over e-mailadresser blandet med anden tekst eller har brug for at trække e-mails fra et stort datasæt, er der flere effektive metoder til at få arbejdet gjort. Denne guide vil lede dig gennem forskellige teknikker til at udtrække e-mail-adresser fra tekststrenge, herunder brug af Flash Fill, Kutools til Excel, formler, brugerdefinerede funktioner og VBA-kode. Hver metode giver forskellige fordele afhængigt af dine behov og kompleksiteten af dataene.
Udpak e-mail-adresse fra tekststreng med Flash Fill
Excel's Flash Fill funktion giver en hurtig og effektiv måde til automatisk at formatere eller udtrække data baseret på mønstre, du definerer. I dette afsnit gennemgår vi, hvordan du bruger Flash Fill til at udtrække e-mail-adresser fra en kolonne med blandede data. Denne metode er især nyttig, når du har at gøre med lister, der indeholder forskellige typer tekst, og du behøver kun at udtrække e-mail-adresserne.
- Klik på den første celle i den tilstødende kolonne (f.eks. B2), hvor du ønsker, at e-mailadresserne skal vises.
- Indtast e-mailadressen manuelt fra den tilsvarende række i kolonne A, og tryk derefter på Indtast. For eksempel, hvis A2 indeholder "ana varela@gmail.com," skriv " ana varela@gmail.com " ind i B2.
- Bliv i celle B3, tryk Ctrl + E to aktivere Flash Fill. Excel vil automatisk udfylde resten af kolonne B med de udpakkede e-mailadresser.
- Flash Fill er tilgængelig i Excel 2013 og nyere versioner. Hvis du bruger Excel 2010 eller tidligere, er denne funktion muligvis ikke tilgængelig.
- Sørg for, at cellerne, hvor du anvender Flash Fill, er formateret som 'Tekst' for at undgå uønskede formateringsproblemer.
Et klik for at batchudtrække e-mail-adresse fra tekststreng med Kutools
Når det kommer til at udtrække e-mail-adresser fra et datasæt, Kutools til Excel's Uddrag e-mail-adresse funktion tilbyder et kraftfuldt alternativ til Excels Flash Fill. Mens Flash Fill giver en manuel tilgang til mønstergenkendelse, automatiserer Kutools til Excel processen med kun et klik, hvilket gør den ideel til at håndtere store mængder data effektivt. Dette værktøj forenkler ikke kun ekstraktionsprocessen, men sikrer også nøjagtighed og hastighed, især når det drejer sig om komplekse eller inkonsistente datasæt.
Efter at have downloadet og installeret Kutools til Excelskal du gøre som følger:
- Vælg det celleområde, du vil udtrække e-mail-adresser fra. Gå derefter til vælg Kutools > tekst > Uddrag e-mail-adresse
- I dukker op Uddrag e-mail-adresse dialogboksen, vælg en celle for at udskrive e-mail-adressen og klik OK
Resultat
Derefter udtrækkes alle e-mailadresser i hver celle i det valgte område med det samme.
Uddrag e-mail-adresse fra tekststreng med formel
Her introducerer jeg dig en lang formel for kun at udtrække e-mail-adresserne fra teksten i Excel. Gør som følger:
1. Indtast denne formel i den tilstødende celle B1 = TRIM (HØJRE (SUBSTITUT (VENSTRE (A1, FIND ("", A1 & "", FIND ("@", A1)) - 1), "", REPT ("", LEN (A1))), LEN ( A1))).
2. Tryk derefter på Indtast nøgle, vælg derefter celle B1, og træk fyldhåndtaget til det område, du vil indeholde denne formel. Og e-mail-adresserne i området er udvundet fra tekststrengen. Se skærmbillede:
Bemærkninger:
1. Tegnsætningen efter e-mail-adressen ekstraheres også.
2. Hvis cellerne ikke indeholder e-mail-adresserne, viser formlen fejlværdier.
3. Hvis der er mere end en e-mail-adresse i en celle, udtrækker formlen kun den første adresse.
Uddrag e-mail-adresse fra tekststreng med brugerdefineret funktion
Bortset fra ovenstående formel kan en brugerdefineret funktion også hjælpe dig med at få e-mail-adressen fra tekststrengen.
1. Hold nede ALT + F11 tasterne, og det åbner Microsoft Visual Basic til applikationer vindue.
2. Klik indsatte > Moduler, og indsæt følgende makro i modulvinduet.
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. Gem derefter koden, og indtast formlen = ExtractEmailFun (A1) i en tilstødende tom celle, se skærmbillede:
4. Og tryk derefter på Indtast nøgle, vælg celle B1, og træk udfyldningshåndtaget over til det område, som du har brug for formlen. Og alle e-mail-adresser er udvundet fra celleteksten. Se skærmbillede:
Bemærkninger:
1. Hvis cellerne ikke har e-mail-adresserne, afslører det tomme celler.
2. Hvis der er mere end en e-mail-adresse i en celle, udpakkes alle e-mails.
Uddrag e-mail-adresse fra tekststreng med VBA-kode
Hvis du føler, at ovenstående formler er besværlige for dig, kan følgende VBA-kode hjælpe dig med at udtrække e-mail-adresserne ad gangen.
1. Hold nede ALT + F11 taster, og det åbner en Microsoft Visual Basic til applikationer vindue.
2. Klik indsatte > Moduler, og indsæt følgende makro i Modulvindue.
VBA: udpak e-mail-adresser fra tekststreng
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. Tryk derefter på F5 nøgle til at køre denne kode, og du skal vælge et område, som du vil bruge VBA i den poppede dialog, se skærmbillede:
4. Klik derefter på OK, og e-mail-adresserne er udvundet fra de valgte tekststrenge. Se skærmbilleder:
Bemærkninger:
1. Hvis cellerne ikke har e-mail-adresserne, afslører det tomme celler.
2. Alle e-mails ekstraheres, hvis der er mere end en e-mail-adresse i en celle.
3. De udpakkede e-mails dækker de originale data, så du må hellere sikkerhedskopiere dataene, hvis du har brug for det.
Demo: Uddrag e-mail-adresse fra tekststreng med Kutools til Excel
Relateret artikel:
Hvordan udpakkes domæner fra flere e-mail-adresser i Excel?
Bedste kontorproduktivitetsværktøjer
Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid. Klik her for at få den funktion, du har mest brug for...
Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere
- Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
- Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
- Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!