将完整字符串分隔为Firstname,Middle Initial和Lastname by列

时间:2014-09-05 13:37:06

标签: excel text excel-formula worksheet-function separator

使用Excel,我如何分隔全名字符串,例如:

    Juan I. Dela Cruz
    Jojo Rambo
    Unlce Sam
    Mary Ann J. San Jose

输入'Firstname','Middle Initial'和'Lastname':

+----------+----------------+----------+
|Firstname | Middle Initial | Lastname |
+----------+----------------+----------+
|Juan      | I.             | Dela Cruz|
+----------+----------------+----------+
|Jojo      |                | Rambo    |
+----------+----------------+----------+
|Uncle     |                | Sam      |
+----------+----------------+----------+
|Mary Ann  | J.             | San Jose |
+----------+----------------+----------+

3 个答案:

答案 0 :(得分:1)

在名字中:=IFERROR(LEFT(A1,FIND(".",A1)-3),LEFT(A1,FIND(" ",A1)-1))
在初始中=IFERROR(MID(A1,FIND(".",A1)-1,2),"")中 在姓氏=IFERROR(RIGHT(A1,LEN(A1)-FIND(".",A1)-1),RIGHT(A1,LEN(A1)-FIND(" ",A1)))

每个复制到适合可能是一个开始(对于提供的示例)但是,由于@lurker提到的原因,这可能不是一个全面的解决方案。

答案 1 :(得分:0)

最初的想法是在数据选项卡下使用文本到列,空格作为分隔符。然而,之前的评论为确定你的名字提出了一个很好的观点。

如果您没有多个具有多个空格的名称实例,例如您的Mary Ann J. San Jose示例,那么文本到列将很有效 - 您可以手动组合您的异常值。

答案 2 :(得分:0)

经过几天的努力,这就是我想出的。这也适用于Excel 2000。似乎在我正在使用的格式为“姓氏”,“名字”“MI”的数据集上运行良好。

我的名字字段在B栏中,我的公式在H,I和J

姓氏

=LEFT(B2,SEARCH(",",B2)-1)

名字

=IF(LEN(MID(B2,LEN(H2)+3,LEN(B2)-LEN(H2)))-LEN(SUBSTITUTE(MID(B2,LEN(H2)+3,LEN(B2)-LEN(H2))," ",""))>0,MID(B2,LEN(H2)+3,LEN(B2)-LEN(H2)-LEN(RIGHT(B2,LEN(B2)-FIND("|",SUBSTITUTE(B2," ","|",LEN(B2)-LEN(SUBSTITUTE(B2," ",""))))))-3),MID(B2,LEN(H2)+3,LEN(B2)-LEN(H2)))

Middle Inital

=IF(RIGHT(B2,1)=".",MID(B2,LEN(H2)+LEN(I2)+3,1),MID(B2,LEN(H2)+LEN(I2)+4,1))

到目前为止,这已经处理了我可以投入的任何数据。

祝你好运