Hur extraherar jag snabbt e-postadress från textsträng?
När du importerar några e-postadresser från Webbplats till Excel-kalkylblad innehåller det alltid irrelevant text, men nu vill du bara extrahera de rena e-postadresserna från textsträngen (se följande skärmdumpar). Hur kunde du snabbt bara få e-postadresserna från celltexten?
Extrahera e-postadress från textsträng med Formel
Här introducerar jag dig en lång formel för att endast extrahera e-postadresserna från texten i Excel. Gör så här:
1. Ange den här formeln i den intilliggande cellen B1 = TRIM (HÖGER (SUBSTITUT (VÄNSTER (A1, HITTA ("", A1 & "", HITTA ("@", A1)) - 1), "", REPT ("", LEN (A1))), LEN ( A1))).
2. Tryck sedan på ange välj sedan cellen B1 och dra påfyllningshandtaget till det intervall som du vill innehålla denna formel. Och e-postadresserna i intervallet har extraherats från textsträngen. Se skärmdump:
Anmärkningar:
1. Tecknet efter e-postadressen extraheras också.
2. Om cellerna inte innehåller e-postadresserna visar formeln felvärden.
3. Om det finns mer än en e-postadress i en cell kommer formeln endast att extrahera den första adressen.
Extrahera flera e-postadresser från textsträngar
Kutools för ExcelÄr Extrahera e-postadress kan hjälpa dig att extrahera e-postadresserna från textsträngarna snabbt och bekvämt. Klicka för att ladda ner Kutools för Excel!
Kutools för Excel: med mer än 300 praktiska Excel-tillägg, gratis att prova utan begränsning på 30 dagar. Ladda ner och testa gratis nu!
Extrahera e-postadress från textsträng med användardefinierad funktion
Förutom ovanstående formel kan en användardefinierad funktion också hjälpa dig att få e-postadressen från textsträngen.
1. Håll ner ALT + F11 knapparna och det öppnar Microsoft Visual Basic för applikationer fönster.
2. Klicka Insert > Modulernaoch klistra in följande makro i modulfönstret.
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. Spara sedan koden och ange formeln = ExtractEmailFun (A1) i en intilliggande tom cell, se skärmdump:
4. Och tryck sedan på ange välj cellen B1 och dra fyllningshandtaget till det intervall som du behöver formeln. Och alla e-postadresser har extraherats från celltexten. Se skärmdump:
Anmärkningar:
1. Om cellerna inte har e-postadresserna kommer det att avslöja tomma celler.
2. Om det finns mer än en e-postadress i en cell extraheras alla e-postmeddelanden.
Extrahera e-postadress från textsträng med VBA-kod
Om du tycker att ovanstående formler är besvärliga för dig, kan följande VBA-kod hjälpa dig att extrahera e-postadresserna i taget.
1. Håll ner ALT + F11 knapparna, och det öppnas en Microsoft Visual Basic för applikationer fönster.
2. Klicka Insert > Modulernaoch klistra in följande makro i Modulfönster.
VBA: extrahera e-postadresser från textsträng
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. Tryck sedan på F5 nyckel för att köra den här koden, och du bör välja ett intervall som du vill använda VBA i dialogrutan poppade ut, se skärmdump:
4. Klicka sedan OK, och e-postadresserna har extraherats från de valda textsträngarna. Se skärmdumpar:
![]() |
![]() |
![]() |
Anmärkningar:
1. Om cellerna inte har e-postadresserna kommer det att avslöja tomma celler.
2. Alla e-postmeddelanden extraheras om det finns mer än en e-postadress i en cell.
3. De extraherade e-postmeddelandena täcker originaldata, så det är bättre att säkerhetskopiera data först om du behöver.
Extrahera e-postadress från textsträng med Kutools för Excel med ett klick
Ovanstående metoder ser lite komplicerade ut för vår nybörjare i Excel, här kan jag rekommendera dig ett snabbt och enkelt verktyg- Kutools för Excel, med dess Extrahera e-postadress verktyg kan du extrahera e-postadresserna från textsträngarna utan mycket ansträngning.
Kutools för Excel : med mer än 300 praktiska Excel-tillägg, gratis att prova utan begränsning på 30 dagar. |
Om du har installerat Kutools för Excel, gör så här:
1. Markera cellerna som innehåller textsträngarna.
2. Klicka Kutools > text > Extrahera e-postadress, se skärmdump:
3. Och en Extrahera e-postadress dialogrutan dyker upp, välj en cell där du vill placera resultatet, se skärmdump:
4. Klicka sedan OK knappen, alla e-postadresser har extraherats från textsträngarna, se skärmdump:
Klicka för att ladda ner och prova gratis Kutools för Excel nu!
Demo: Extrahera e-postadress från textsträng med Kutools för Excel
Relaterad artikel:
Hur extraherar jag domäner från flera e-postadresser i Excel?
De bästa Office-produktivitetsverktygen
Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%
- återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
- Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
- Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
- Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
- Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
- Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
- Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
- Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
- Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare
- Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
- Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
- Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!






















