Jak rychle extrahovat e-mailovou adresu z textového řetězce?
Při importu některých e-mailových adres z webu do listu aplikace Excel vždy obsahuje irelevantní text, ale nyní chcete pouze extrahovat čisté e-mailové adresy z textového řetězce (viz následující screenshoty). Jak jste mohli rychle získat pouze e-mailové adresy z textu buňky?
Extrahujte e-mailovou adresu z textového řetězce pomocí vzorce
Zde vám představuji dlouhý vzorec pro extrahování pouze e-mailových adres z textu v aplikaci Excel. Postupujte prosím následovně:
1. Do sousední buňky B1 zadejte tento vzorec = TRIM (PRAVÝ (NÁHRADA (VLEVO (A1, FIND ("", A1 & "", FIND ("@", A1)) - 1), "", REPT ("", LEN (A1))), LEN ( A1))).
2. Pak stiskněte tlačítko vstoupit vyberte buňku B1 a přetáhněte úchyt výplně do rozsahu, ve kterém chcete tento vzorec obsahovat. A e-mailové adresy v rozsahu byly extrahovány z textového řetězce. Viz screenshot:
Poznámky:
1. Bude také extrahována interpunkce za e-mailovou adresou.
2. Pokud buňky neobsahují e-mailové adresy, zobrazí vzorec chybové hodnoty.
3. Pokud je v buňce více než jedna e-mailová adresa, vzorec extrahuje pouze první adresu.
Extrahujte více e-mailových adres z textových řetězců
Kutools pro ExcelJe Extrahujte e-mailovou adresu vám pomůže rychle a pohodlně extrahovat e-mailové adresy z textových řetězců. Klikněte a stáhněte si Kutools pro Excel!
Kutools pro Excel: s více než 300 praktickými doplňky aplikace Excel, můžete vyzkoušet bez omezení do 30 dnů. Stáhněte si a vyzkoušejte zdarma hned teď!
Extrahujte e-mailovou adresu z textového řetězce pomocí funkce definované uživatelem
Kromě výše uvedeného vzorce vám funkce definovaná uživatelem také pomůže získat e-mailovou adresu z textového řetězce.
1. Podržte ALT + F11 klíče a otevře se Microsoft Visual Basic pro aplikace okno.
2, klikněte Vložit > Modula vložte následující makro do okna modulu.
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. Poté kód uložte a zadejte vzorec = ExtractEmailFun (A1) v sousední prázdné buňce, viz screenshot:
4. A pak stiskněte vstoupit vyberte buňku B1 a přetáhněte úchyt výplně do rozsahu, ve kterém potřebujete vzorec. A všechny e-mailové adresy byly extrahovány z textu buňky. Viz screenshot:
Poznámky:
1. Pokud buňky nemají e-mailové adresy, odhalí prázdné buňky.
2. Pokud je v buňce více než jedna e-mailová adresa, budou extrahovány všechny e-maily.
Extrahujte e-mailovou adresu z textového řetězce pomocí kódu VBA
Pokud máte pocit, že výše uvedené vzorce jsou pro vás problematické, následující kód VBA vám pomůže extrahovat e-mailové adresy najednou.
1. Podržte ALT + F11 klíče a otevře se a Microsoft Visual Basic pro aplikace okno.
2, klikněte Vložit > Modula vložte následující makro do souboru Okno modulu.
VBA: extrahujte e-mailové adresy z textového řetězce
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. Poté stiskněte F5 klíč ke spuštění tohoto kódu a měli byste vybrat rozsah, který chcete použít VBA ve vyskakovacím dialogovém okně, viz screenshot:
4. Pak klikněte na tlačítko OKa e-mailové adresy byly extrahovány z vybraných textových řetězců. Zobrazit snímky obrazovky:
Poznámky:
1. Pokud buňky nemají e-mailové adresy, odhalí prázdné buňky.
2. Všechny e-maily budou extrahovány, pokud je v buňce více než jedna e-mailová adresa.
3. Extrahované e-maily budou pokrývat původní data, takže si je v případě potřeby nejprve zálohujte.
Extrahujte e-mailovou adresu z textového řetězce pomocí programu Kutools pro Excel jedním kliknutím
Výše uvedené metody vypadají pro začátečníka aplikace Excel poněkud komplikovaně, zde vám mohu doporučit rychlý a snadný nástroj - Kutools pro Excel, S jeho Extrahujte e-mailovou adresu můžete extrahovat e-mailové adresy z textových řetězců bez velkého úsilí.
Kutools pro Excel : s více než 300 praktickými doplňky Excel, můžete si je vyzkoušet bez omezení do 30 dnů. |
Pokud jste nainstalovali Kutools pro Excel, postupujte následovně:
1. Vyberte buňky obsahující textové řetězce.
2, klikněte Kutools > Text > Extrahujte e-mailovou adresu, viz screenshot:
3. A Extrahujte e-mailovou adresu vyskočí dialogové okno, vyberte buňku, kam chcete umístit výsledek, viz screenshot:
4. Pak klikněte na tlačítko OK tlačítko, všechny e-mailové adresy byly extrahovány z textových řetězců, viz screenshot:
Klikněte a stáhněte si zdarma zkušební verzi Kutools pro Excel!
Ukázka: Extrahujte e-mailovou adresu z textového řetězce pomocí programu Kutools pro Excel
Související článek:
Jak extrahovat domény z více e-mailových adres v aplikaci Excel?
Nejlepší nástroje pro produktivitu v kanceláři
Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času. Kliknutím sem získáte funkci, kterou nejvíce potřebujete...
Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci
- Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
- Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
- Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!