你如何拆分名字以获得名字和姓氏?

Bob*_*Bob 1 microsoft-excel

我有一列包含姓名列表,我希望另外两列包含提取名字和姓氏的函数。到目前为止我有这个

FirstName: =LEFT(D3,FIND(" ",D3))
LastName: =RIGHT(D3,LEN(D3)-FIND(" ",D3))
Run Code Online (Sandbox Code Playgroud)

这适用于格式为“First Last”的姓名,但在有额外信息(例如“Mr. First Last”)时不起作用。

有没有更好的方法来解决这个问题?

JP *_*oto 7

可能最适合 StackOverflow,但通常没有简单的方法。您可以有一个允许的前缀和后缀列表,以使您的算法更好。但是考虑...

Dr. Jack Johnson Smith, PhD
Mr. Jim S. Van De Berg, Jr.
Run Code Online (Sandbox Code Playgroud)

...仅在空格上拆分永远不会完全正确。


Gra*_*row 7

没有万无一失的方法,甚至忽略标题和后缀之类的东西。考虑以下两个名称:

爱德华·范·海伦
大卫·李·罗斯

姓氏是“Van Halen”和“Roth”,但没有算法方法可以区分。

  • “程序员相信名字的谎言”:http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/ (5认同)