如何从 Excel 的特定单元格中提取手机号码和电子邮件地址,同时在单元格中提供其他文本

如何从 Excel 的特定单元格中提取手机号码和电子邮件地址,同时在单元格中提供其他文本

Excel 单元格示例数据:

Subject :Contact from Al Meezan Investment<br/> Email Body: Name: Gulzar ali mirbahar
Email: [email protected]
Contact Number: 03412770800
Subject: Can I eligible of this offer

答案1

对于这种格式的数据(即电子邮件后跟联系电话,后跟主题,并且每个都标记为这样),您可以使用FINDMID函数来提取电子邮件和联系电话。

要提取电子邮件,您可以使用以下命令:

=MID(A1,FIND("Email:",A1)+LEN("Email: "),FIND("Contact Number:",A1)-FIND("Email:",A1)-LEN("Email: "))

分解:
MID函数有三个参数:
1. 要从中提取文本的单元格,
2. 目标文本从哪个字符索引开始(例如,40从 A1 中的第 40 个字符开始),以及
3. 要提取多少个字符。

第一个参数就是A1
第二个参数是FIND("Email:",A1)+LEN("Email: ")。这基本上表示您要提取的电子邮件地址从 之后的索引开始Email:
第三个参数是FIND("Contact Number:",A1)-FIND("Email:",A1)-LEN("Email: ")。这是一种计算电子邮件地址长度的方法。

答案2

虽然您没有要求使用 VBA 解决方案,而且您当然可以使用公式来实现这一点,但对于更通用的解决方案,用户定义函数 (UDF) 可能在这里很方便。您可以提取以已知标签开头的任何行的内容。

如果您要执行更复杂的提取,不同的算法可能会更有价值。

算法

  • 根据换行符拆分单元格内容
  • 根据需要拆分每一行Label
    • 如果标签不存在,则结果Split将是一个具有单个条目的数组,否则将有两个条目
  • 如果Split有两个条目,则返回第二个。

要输入此用户定义函数 (UDF),alt-F11请打开 Visual Basic 编辑器。确保您的项目在 Project Explorer 窗口中突出显示。然后,从顶部菜单中选择插入/模块并将以下代码粘贴到打开的窗口中。

要使用此用户定义函数 (UDF),请输入如下公式

=cellPart(A1,"email:")

在某个牢房里。

Option Explicit
Option Compare Text
'Extract any line starting with sLabel

Function cellPart(myCell As Range, sLabel As String) As String
  Dim V, W, X
  V = Split(myCell.Text, vbLf)

For Each W In V
    X = Split(W, sLabel)
    If UBound(X) = 1 Then
        cellPart = CStr(Trim(X(1)))
        Exit Function
    End If
Next W
End Function

答案3

仅根据您提供的唯一示例,您可以使用以下 2 个公式

这将对单元格 A1 中的数据起作用

电子邮件:

=MID(A1,SEARCH("Email:",A1)+6,SEARCH("contact Number:",A1)-SEARCH("Email:",A1)-6)

联系电话:

=MID(A1,SEARCH("contact Number:",A1)+16,SEARCH("subject:",A1)-SEARCH("contact Number:",A1)-16)

相关内容