Rychle extrahujte e-mailovou adresu z textového řetězce v aplikaci Excel – úplný průvodce
Při práci s importovanými daty nebo smíšenými textovými řetězci v aplikaci Excel můžete zjistit, že potřebujete rychle a přesně extrahovat e-mailové adresy. Ať už pracujete se seznamem e-mailových adres smíchaným s jiným textem, nebo potřebujete stahovat e-maily z velké datové sady, existuje několik účinných metod, jak tuto práci provést. Tato příručka vás provede různými technikami extrahování e-mailových adres z textových řetězců, včetně použití Flash Fill, Kutools pro Excel, vzorců, uživatelsky definovaných funkcí a kódu VBA. Každá metoda nabízí různé výhody v závislosti na vašich potřebách a složitosti dat.
Extrahujte e-mailovou adresu z textového řetězce pomocí Flash Fill
Excel Flash Fill Tato funkce poskytuje rychlý a efektivní způsob automatického formátování nebo extrahování dat na základě vámi definovaných vzorů. V této části si projdeme, jak používat Flash Fill k extrahování e-mailových adres ze sloupce smíšených dat. Tato metoda je užitečná zejména při práci se seznamy obsahujícími různé typy textu a potřebujete pouze extrahovat e-mailové adresy.
- Klikněte na první buňku v sousedním sloupci (např. B2), kde chcete zobrazovat e-mailové adresy.
- Ručně zadejte e-mailovou adresu z odpovídajícího řádku ve sloupci A a stiskněte vstoupit. Pokud například A2 obsahuje "ana varela@gmail.com"," zadejte " ana varela@gmail.com “ do B2.
- Zůstaňte v buňce B3, stiskněte Ctrl + Eto aktivovat Flash Fill. Excel automaticky vyplní zbytek sloupce B extrahovanými e-mailovými adresami.
- Flash Fill je k dispozici v Excelu 2013 a novějších verzích. Pokud používáte Excel 2010 nebo starší, tato funkce nemusí být dostupná.
- Ujistěte se, že buňky, na které aplikujete Flash Fill, jsou naformátovány jako „Text“, abyste předešli nechtěným problémům s formátováním.
Jedním kliknutím můžete hromadně extrahovat e-mailovou adresu z textového řetězce pomocí Kutools
Pokud jde o extrahování e-mailových adres z datové sady, Kutools pro ExcelJe Extrahujte e-mailovou adresu nabízí výkonnou alternativu k Flash Fill v Excelu. Zatímco Flash Fill poskytuje manuální přístup k rozpoznávání vzorů, Kutools pro Excel automatizuje proces jediným kliknutím, takže je ideální pro efektivní manipulaci s velkými objemy dat. Tento nástroj nejen zjednodušuje proces extrakce, ale také zajišťuje přesnost a rychlost, zejména při práci se složitými nebo nekonzistentními soubory dat.
Po stažení a instalaci Kutools pro Excel, postupujte následovně:
- Vyberte rozsah buněk, ze kterých chcete extrahovat e-mailové adresy. Poté přejděte k výběru Kutools > Text > Extrahujte e-mailovou adresu
- Při objevování Extrahujte e-mailovou adresu V dialogovém okně vyberte buňku pro výstup e-mailové adresy a klepněte na OK
Výsledek
Poté jsou okamžitě extrahovány všechny e-mailové adresy v každé buňce zvoleného rozsahu.
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 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.
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!