Lance在工作簿中有一组名称。名称全部在A列中,其中一些具有名字和姓氏,而其他一些则使用名字,中间名和姓氏。他需要将名称分成单独的列,但是“文本到列”向导不能提供令人满意的结果。它可以完成分离,但是两个名称对三个名称的问题意味着Lance在拆分数据后需要对数据进行大量的手动处理。

该问题的解决方案是不依赖于“文本到列”向导,而是使用许多公式将名称放入列中。您获得的结果在很大程度上仍然取决于您要解析的数据的条件。如果数据的格式为“ first first last”(中间名是可选的),则可以使用以下公式提取名字:

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

此公式检查名称中的第一个空格,然后假定该空格之前的所有内容均为名字。下一个公式用于确定是否存在中间名,如果存在,请显示该中间名:

=IF(ISERROR(SEARCH(" ", RIGHT(A1, LEN(A1) - _ SEARCH(" ", A1, 1)), 1)) = TRUE, "", _ LEFT(RIGHT(A1,LEN(A1) - SEARCH(" ", A1, 1)), _ SEARCH(" ", RIGHT(A1, LEN(A1) - SEARCH(" ", _ A1, 1)), 1) - 1))

该公式检查名称中是否存在第二个空格。如果生成错误(没有第二个空格),则该公式不返回任何内容;没有中间名。如果检测到第二个空格(不产生错误),则该公式将返回从第一个空格到第二个空格的所有内容。

=RIGHT(A1,LEN(A1)-LEN(B1)-LEN(C1)-IF(C1="",1,2))

此公式依赖于返回的名字和中间名的结果。考虑到名字(假设在单元格B1中)和中间名(假设在C1中)的长度后,它将返回原始名称中剩下的所有内容。

同样,如果原始数据位于“第一个倒数”

中,这些公式将起作用或“第一个居中”格式。如果名称中有限定词,例如Ms.,Dr.,Jr。或III,那么您将不会获得令人满意的结果。此外,如果姓氏包含空格(例如“ John van Kamp”或“ Mary Anne St. Marie”中的空格),那么您也将不会获得满意的结果。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2789)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: