Excel formula 如何使用公式提取中间名

Excel formula 如何使用公式提取中间名,excel-formula,Excel Formula,我正在努力: 从字段中提取客户端的中间名;或 删除名字和姓氏,保留中间名 但是我被卡住了。我可以使用 =LEFT(TRIM(A1),FIND("~",SUBSTITUTE(A1," ","~",LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))))-1) 我可以通过以下方式删除第一个单词: =RIGHT(A1,LEN(A1)-FIND(" ",A1)) 但我不能把它们结合起来。我在网上查找并发现: =TRIM(REPLACE(SUBSTITUTE((

我正在努力:

  • 从字段中提取客户端的中间名;或
  • 删除名字和姓氏,保留中间名
  • 但是我被卡住了。我可以使用

    =LEFT(TRIM(A1),FIND("~",SUBSTITUTE(A1," ","~",LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))))-1)
    
    我可以通过以下方式删除第一个单词:

    =RIGHT(A1,LEN(A1)-FIND(" ",A1))
    
    但我不能把它们结合起来。我在网上查找并发现:

    =TRIM(REPLACE(SUBSTITUTE((TRIM(REPLACE(SUBSTITUTE(A1," ",REPT(" ",LEN(A1))),0*LEN(A1)+1,LEN(A1),"")))," ",REPT(" ",LEN(A1))),(1+LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-1)*LEN(A1)+1,LEN(A1),""))
    

    但它不起作用。

    只需将“删除最后一个单词”公式放在“删除第一个单词”公式中即可

    =RIGHT(LEFT(TRIM(A1),FIND("~",SUBSTITUTE(A1," ","~",LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))))-1),LEN(LEFT(TRIM(A1),FIND("~",SUBSTITUTE(A1," ","~",LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))))-1))-FIND(" ",LEFT(TRIM(A1),FIND("~",SUBSTITUTE(A1," ","~",LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))))-1)))
    
    实现:只需将“删除第一个单词”公式中的所有A1替换为“删除最后一个单词”公式

    =RIGHT(LEFT(TRIM(A1),FIND("~",SUBSTITUTE(A1," ","~",LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))))-1),LEN(LEFT(TRIM(A1),FIND("~",SUBSTITUTE(A1," ","~",LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))))-1))-FIND(" ",LEFT(TRIM(A1),FIND("~",SUBSTITUTE(A1," ","~",LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))))-1)))
    
    完成了


    希望有帮助。

    是否愿意共享示例数据?如果没有示例,我将测试两个空格(即中间名)是否存在,然后继续。如果只有一个空格,那么假设没有中间名…这确实有帮助,谢谢,看起来很有效。我能看到的唯一问题是,如果这个人只有两个名字,那么它就会出错,我该如何输入,如果这个人的名字有两个单词,那么这个规则将不返回任何内容,如果超过两个单词,那么上面的公式将不返回任何内容。如果有错误,只需使用
    =iferror(,“”)将输出设置为“”(null)(使用
    =iferror(,“”)