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?
Bästa kontorsproduktivitetsverktyg
Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid. Klicka här för att få den funktion du behöver mest...
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!