【问题标题】:how to separate mixed email ids from cell如何从单元格中分离混合的电子邮件 ID
【发布时间】:2021-11-08 23:07:09
【问题描述】:

如何从单元格范围中分离混合的电子邮件 ID,例如

在 A 列中,所有电子邮件 ID 都与超链接混合在一起,我想在每个单元格中将它们分开

Column A
krish@gmail.com hanu@gmail.com pradeep@gmail.com anish@gmail.com

我想用下面提到的超链接将混合的电子邮件 ID 分隔为单独的单元格

Column A
krish@gmail.com
hanu@gmail.com
pradeep@gmail.com
anish@gmail.com

【问题讨论】:

  • 在 VBA 文档中查找 Split 函数。
  • 您使用的是什么版本的 Excel?
  • 我的 Excel 2016 版

标签: excel vba excel-formula


【解决方案1】:

这是一个通用公式,用于将 A 列中包含的电子邮件地址提取到单独的单元格中(例如 B1、C1 等)。

根据需要向下/交叉复制。

=TRIM(MID(SUBSTITUTE(" "&$A1&" "," ",REPT(" ",40)),FIND(REPT("@",COLUMNS($A1:A1)),SUBSTITUTE(SUBSTITUTE(" "&$A1&" "," ",REPT(" ",40)),"@",REPT("@",COLUMNS($A1:A1)),COLUMNS($A1:A1)))-40,80))

【讨论】:

    【解决方案2】:

    如果您使用的是 Excel 365,请在 B1 中插入:

    =parsee(TEXTJOIN(" ",TRUE,A:A)," ")
    

    parsee() 是这个 UDF:

    Option Explicit
    Public Function parsee(inpt As String, sep As String)
    '
    '   spill-down version
    '
        Dim L As Long, i As Long, temp, arr
        Dim lb As Long, ub As Long
        
        If inpt = "" Then
            parsee = ""
            Exit Function
        End If
        If sep = "" Then
            L = Len(inpt)
            ReDim arr(1 To L, 1 To 1)
            For i = 1 To L
                arr(i, 1) = Mid(inpt, i, 1)
            Next i
        Else
            temp = Split(inpt, sep)
            lb = LBound(temp)
            ub = UBound(temp)
            ReDim arr(lb To ub, 1 To 1)
            For i = lb To ub
                arr(i, 1) = temp(i)
            Next i
        End If
        parsee = arr
    End Function
    

    【讨论】:

    • 我的 office 版本是 2016 年,我在工作表上应用了你的 UDF 来分隔带有超链接的混合电子邮件 ID 我收到了像 #Value 这样的值错误我已经应用了像 =parsee(A1) 这样的 UDF 函数跨度>
    【解决方案3】:

    VBA 可能是最快的,但这里有另一种没有 VBA 的方法。首先,突出显示您的列 A 并转到数据...文本到列...分隔...按空格。这会将每个电子邮件地址输入到他们自己的单元格中。

    然后在左侧插入一个额外的列。因此,A 列只是一个空白列。

    然后创建一个数据透视表(不是以通常的方式),按 ALT-D 然后按 P。在向导的第一个窗口中选择“多个合并范围”。按下一步。

    然后在向导中选择“为我创建单页字段”,然后按下一步。

    然后选择您的范围(包括空白列)。在这种情况下,我们的范围是 A1:E4。添加该范围,按下一步。

    将数据透视表放入新工作表(或现有工作表,您可以选择),然后按 FINISH。

    通过将“值”字段放置在行区域中来设计您的数据透视表。然后过滤以删除“空白”并更改设计以删除总计。

    现在您将所有电子邮件堆叠在一起。如果您想创建另一列以保留其链接,则可以将其添加为 B 列公式:

    =HYPERLINK(A4,A4)
    

    原始数据:

    分隔和添加空白列后的样子:

    作为超链接的枢轴和可选列 B 的最终输出:

    【讨论】:

      【解决方案4】:

      您可以使用 FILTERXML 公式来拆分电子邮件。在 Office 365 中,一个典型的公式是:

      =FILTERXML("<t><d>"&SUBSTITUTE(A1," ","</d><d>")&"</d></t>","//d")

      A1 存放您发布的输入字符串。

      【讨论】:

        猜你喜欢
        • 2016-08-22
        • 1970-01-01
        • 2023-03-31
        • 2014-11-28
        • 2015-12-15
        • 1970-01-01
        • 1970-01-01
        • 2020-01-16
        • 2021-10-19
        相关资源
        最近更新 更多