【问题标题】:Excel Find formula split string of namesExcel查找公式拆分名称字符串
【发布时间】:2017-07-26 19:00:40
【问题描述】:

我正在尝试拆分名称列表,它们的形式为:

Surname, Title. Firstname (Nickname)

Jonesy, Mr. Cheese (Edam)
Bukowski, Mrs. Gertrude (Gerti)

我需要将它们放入 Firstname Surname

Firstname 应该很容易找到:Title 的点之后的两个字符,直到 Nickname 的左括号之前的空格。只有我的 excel 公式不能满足我的需求。

A1 Smith, Mr. Andrew (Andy)
A2 =MID(A1,1,Find(" ",A1)-2)
A3 =MID(A1,Find(".",A1)+2, Find("(",A1)+1)

我只得到 A3:

Andrew (Andy)

而不仅仅是安德鲁这个名字

我要补充一点,我需要公式来引用名称单元格,而不是要引用临时数据的单元格(即临时单元格)

我在这棵树上看不到树林。需要调用更大的大脑。

【问题讨论】:

  • @BruceWayne 你们有人知道为什么我原来的公式不起作用吗?
  • 是的 - 这是...Find("(",A1)+1) 部分。使用MID(),您将在第一个周期之后正确地为您的目的开始。公式的第二部分询问. 后面要多少个字符?目前,您将其设置为20(只需执行=FIND("(",A1)+1),它会解析为20。所以它在. 之后有20 个空格,所以它得到了你的结果。如果你有Smith, Mr. Andrew (Andy Smith Jones),它会返回Andrew (Andy Smith J
  • (也就是说,下面的任何答案对你有用吗?看起来应该有一两个应该,所以请随意将其中一个标记为答案。如果没有答案,你可以对它们发表评论让我们知道,我们可以调整答案。)

标签: excel string split excel-formula


【解决方案1】:

假设数据设置的标题位于第 1 行,您的“完整名称”在 A 列中从第 2 行开始,如下所示:

在单元格 B2 中并向下复制以下公式来获取名字:

=MID(A2,FIND(".",A2)+2,FIND("(",A2)-FIND(".",A2)-3)

在单元格 C2 中并向下复制以下公式来获取姓氏:

=LEFT(A2,FIND(",",A2)-1)

【讨论】:

    【解决方案2】:

    您可以使用这个单一公式来获取Firstname Surname

    =TRIM(MID(A1,SEARCH(".",A1)+1,SEARCH("(",A1)-SEARCH(".",A1)-1))&" "&MID(A1,1,FIND(" ",A1)-2)
    

    【讨论】:

      【解决方案3】:

      我觉得很简单....(著名的遗言)。

      你有:

      A1 = Smith, Mr. Andrew (Andy)
      A2 =MID(A1,1,Find(" ",A1)-2)
      A3 =MID(A1,Find(".",A1)+2, Find("(",A1)+1)
      

      我将 A# Find "(" 替换为 " " 并且成功了。

      A1 = Smith, Mr. Andrew (Andy)
      A2 =MID(A1,1,Find(" ",A1)-2)
      A3 =MID(A1,Find(".",A1)+2, Find(" ",A1)+1)
      

      这仅在您只有一个名字时才有效。像 Bobby Joe 或 Billy Bob 这样的名字将在 Bobby 和 Billy 中被切断。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-05
        • 1970-01-01
        • 2018-02-22
        • 1970-01-01
        • 1970-01-01
        • 2023-02-13
        • 1970-01-01
        相关资源
        最近更新 更多