Excel 按列将完整字符串分为Firstname、中间首字母和Lastname

Excel 按列将完整字符串分为Firstname、中间首字母和Lastname,excel,text,excel-formula,worksheet-function,separator,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 | +----------+---------

使用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 |
+----------+----------------+----------+
最初的想法是在数据选项卡下的列中使用文本,以空格作为分隔符。然而,前面的评论提出了一个很好的观点来确定你的名字


如果您没有许多带有多个空格的名称实例,例如您的Mary Ann J.San Jose示例,那么文本到列将很好地工作—您可以手动组合异常值

名字:
=IFERROR(左(A1,FIND(“.”,A1)-3),左(A1,FIND(“,A1)-1))

中间首字母
=IFERROR(中间(A1,FIND(“.”,A1)-1,2),“”)

在Lastname
=IFERROR(右(A1,LEN(A1)-FIND(“.”,A1)-1),右(A1,LEN(A1)-FIND(“,A1))


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

在这方面工作了几天之后,以下是我的想法。这也适用于Excel2000。似乎在我使用的格式为“姓氏”、“名”“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)))
中间初始

=IF(RIGHT(B2,1)=".",MID(B2,LEN(H2)+LEN(I2)+3,1),MID(B2,LEN(H2)+LEN(I2)+4,1))
到目前为止,这已经处理了我可以抛出的任何数据


祝你好运

一般来说,解析名称的问题并不简单。例如,你会如何确定“玛丽·安·德拉·克鲁兹”或“贝蒂·范德沃登”中的名字和姓氏?如果您可以决定您想要的决策方法是什么,那么可以使用函数组合
FIND
MID
LEFT
、和/或
RIGHT
。Lastname可以在字符(句点)之后确定。“然后Firstname可以确定,即使它在两个字符“字母和句点”之前有两个句子。”如果有一个中间的首字母,那就行了。但是,如果没有中间的首字母,因此,没有句号,我在上一篇评论中展示的例子会怎么样?或者更一般地说,如果名字是
X Y Z
(假设这些字母代表单词)没有首字母(没有句点),您如何知道名字是
X Y
和姓氏是
Z
,还是姓氏是
X