如何快速从文本字符串中提取电子邮件地址?
当您从“网站”将一些电子邮件地址导入Excel工作表时,总是包含不相关的文本,但是现在您只想从文本字符串中提取纯电子邮件地址(请参见以下屏幕截图)。 您怎么能快速仅从单元格文本中获取电子邮件地址?
使用公式从文本字符串中提取电子邮件地址
在这里,我向您介绍一个很长的公式,仅从Excel中的文本中提取电子邮件地址。 请执行以下操作:
1。 在相邻的单元格B1中,输入此公式 = TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND(“”,A1&“”,FIND(“ @”,A1))-1),“”,REPT(“”,LEN(A1)))),LEN( A1))).
2。 然后按 输入 键,然后选择单元格B1,并将填充手柄拖到要包含此公式的范围。 并且已从文本字符串中提取了该范围内的电子邮件地址。 看截图:
笔记:
1.电子邮件地址后的标点符号也将被提取。
2.如果单元格中不包含电子邮件地址,则公式将显示错误值。
3.如果一个单元格中有多个电子邮件地址,则该公式将仅提取第一个地址。
从文本字符串中提取多个电子邮件地址
Kutools for Excel“ 提取电子邮件地址 可以帮助您快速方便地从文本字符串中提取电子邮件地址。 点击下载Kutools for Excel!
Kutools for Excel:具有300多个方便的Excel加载项,可以在30天内免费试用,没有任何限制。 立即下载并免费试用!
使用用户定义的功能从文本字符串中提取电子邮件地址
除上述公式外,用户定义函数还可以帮助您从文本字符串中获取电子邮件地址。
1。 按住 ALT + F11 键,然后打开 Microsoft Visual Basic应用程序 窗口。
2。 点击 插页 > 模块,然后将以下宏粘贴到“模块”窗口中。
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。 然后保存代码并输入公式 = ExtractEmailFun(A1) 在相邻的空白单元格中,请参见屏幕截图:
4。 然后按 输入 键,选择单元格B1,然后将填充手柄拖到所需公式的范围内。 并且所有电子邮件地址均已从单元格文本中提取。 看截图:
笔记:
1.如果单元格没有电子邮件地址,它将显示空白单元格。
2.如果一个单元中有多个电子邮件地址,则将提取所有电子邮件。
使用VBA代码从文本字符串中提取电子邮件地址
如果您认为上述公式对您来说很麻烦,则以下VBA代码可以帮助您将电子邮件地址提取为一个。
1。 按住 ALT + F11 键,它会打开一个 Microsoft Visual Basic应用程序 窗口。
2。 点击 插页 > 模块,然后将以下宏粘贴到 模块窗口.
VBA:从文本字符串中提取电子邮件地址
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。 然后按 F5 键来运行此代码,您应该在弹出的对话框中选择要使用VBA的范围,请参见屏幕截图:
4。 然后点击 OK,并且已从所选文本字符串中提取电子邮件地址。 查看屏幕截图:
笔记:
1.如果单元格没有电子邮件地址,它将显示空白单元格。
2.如果一个单元中有多个电子邮件地址,则将提取所有电子邮件。
3.提取的电子邮件将覆盖原始数据,因此,如果需要,最好先备份数据。
使用 Kutools for Excel 一键从文本字符串中提取电子邮件地址
对于我们的Excel初学者来说,上述方法看起来有些复杂,在这里,我可以向您推荐一种快速简便的工具- Kutools for Excel,其 提取电子邮件地址 实用程序,您可以轻松地从文本字符串中提取电子邮件地址。
Kutools for Excel : 带有300多个便捷的Excel加载项,可以在30天内免费试用. |
如果你已经安装 Kutools for Excel,请执行以下操作:
1。 选择包含文本字符串的单元格。
2。 点击 库工具 > 文本 > 提取电子邮件地址,请参见屏幕截图:
3。 和 提取电子邮件地址 对话框将弹出,选择要放置结果的单元格,请参见屏幕截图:
4。 然后点击 OK 按钮,已从文本字符串中提取所有电子邮件地址,请参见屏幕截图:
单击立即下载并免费试用 Kutools for Excel!
演示:使用 Kutools for Excel 从文本字符串中提取电子邮件地址
相关文章:
最佳办公生产力工具
🤖 | Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行 | 生成代码 | 创建自定义公式 | 分析数据并生成图表 | 调用 Kutools 函数... |
热门特色: 查找、突出显示或识别重复项 | 删除空白行 | 合并列或单元格而不丢失数据 | 不使用公式进行四舍五入 ... | |
超级查询: 多条件VLookup | 多值VLookup | 跨多个工作表的 VLookup | 模糊查询 .... | |
高级下拉列表: 快速创建下拉列表 | 依赖下拉列表 | 多选下拉列表 .... | |
列管理器: 添加特定数量的列 | 移动列 | 切换隐藏列的可见性状态 | 比较范围和列 ... | |
特色功能: 网格焦点 | 设计图 | 大方程式酒吧 | 工作簿和工作表管理器 | 资源库 (自动文本) | 日期选择器 | 合并工作表 | 加密/解密单元格 | 按列表发送电子邮件 | 超级筛选 | 特殊过滤器 (过滤粗体/斜体/删除线...)... | |
前 15 个工具集: 12 文本 工具 (添加文本, 删除字符,...) | 50+ 图表 类型 (甘特图,...) | 40+ 实用 公式 (根据生日计算年龄,...) | 19 插入 工具 (插入二维码, 从路径插入图片,...) | 12 转化 工具 (小写金额转大写, 货币兑换,...) | 7 合并与拆分 工具 (高级组合行, 分裂细胞,...) | ... 和更多 |
使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。 单击此处获取您最需要的功能...
Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松
- 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
- 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
- 每天将您的工作效率提高50%,并减少数百次鼠标单击!