【问题标题】:Extract two names from a string从字符串中提取两个名称
【发布时间】:2015-10-16 19:40:53
【问题描述】:

在 Excel 中,假设

A2 = Last_Name1 First_Name1 MI1;#8;#Last_Name2 First_Name2 MI2;#102

在 B2 中,我想查看列出的第一个人的姓氏、名字和中间名首字母。所以我用这个:

=MID(A2,1,FIND(";",A2,1)-1)

结果:姓氏1 名字1 MI1

在 C2 中,我需要写什么才能看到列出的第二个人的姓氏、名字和中间名首字母。

结果:姓氏2 名字2 MI2

我的想法是从右边开始,获取第二个“#”和“;”之间的所有内容(#Last_Name2 First_Name2 MI2;)。

感谢任何帮助。

【问题讨论】:

  • 找到第二个“;”从那里开始?

标签: string excel excel-formula worksheet-function


【解决方案1】:

在单元格 C2 中,输入以下公式:

=LEFT(MID(A2,2+FIND("|",SUBSTITUTE(A2,";","|",2)),99),LEN(MID(A2,2+FIND("|",SUBSTITUTE(A2,";","|",2)),99))-5)

因为@pnuts的概念,我觉得这个版本更好

=LEFT(MID(A2,1+FIND("|",SUBSTITUTE(A2,"#","|",2)),99),FIND(";",MID(A2,1+FIND("|",SUBSTITUTE(A2,"#","|",2)),99))-1)

【讨论】:

    【解决方案2】:

    请尝试:

    =LEFT(MID(A2,1+FIND("#",A2)+FIND("#",MID(A2,FIND("#",A2)+1,99)),99),FIND(";",MID(A2,1+FIND("#",A2)+FIND("#",MID(A2,FIND("#",A2)+1,99)),99))-1)
    

    【讨论】:

      【解决方案3】:

      这适用于所有情况(即,无论姓氏和名字组合的长度如何):

      =MID(LEFT($A2,
      -1+FIND("|",SUBSTITUTE($A2,";","|",3))),
      1+FIND("|",SUBSTITUTE($A2,"#","|",2)),LEN($A2))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-18
        • 1970-01-01
        • 2022-08-12
        • 1970-01-01
        • 2019-08-22
        • 2015-05-12
        • 2021-09-03
        相关资源
        最近更新 更多