7

我有一列名字写成:

“姓,名”

我想要另一个列,此名称列表写为:

“名字姓氏”

那么,如何将字符串从 "lastName, firstName" 切换为 "firstName LastName" ?

4

5 回答 5

18

如果名字在 A2 中,请尝试在 B2 中复制此公式

=MID(A2&" "&A2,FIND(" ",A2)+1,LEN(A2)-1)

于 2012-11-11T13:19:03.413 回答
1

在单元格中输入数据,例如

Brown, John
Green, Bob
Smith, Will

(请注意,在这种情况下,逗号是系统将用于分隔条目的分隔符)突出显示这些单元格。
单击“数据”选项卡,单击“文本到列”。
选择提供的选项。

于 2014-12-10T08:03:08.293 回答
0

为我工作 =RIGHT(C3,LEN(C3)-LEN(LEFT(C3,FIND(",",C3)-1))-1) & " " & LEFT(C3,FIND(",",C3 )-1)

于 2017-05-11T13:28:29.250 回答
0

如果单个单元格 (A2) 不包含诸如“名字姓氏”之类的错误,巴里的回答是正确的——这通常是这种情况。

因此,要处理“Last,First”或“First Last”的单元格数据,我们需要比较单元格并采取适当的措施。另请注意,在我的示例中,我将名字移到了它自己的列中,将姓氏移到了它自己的列中。您当然可以将它们合并到一个列中。

首先,让我们分解我们需要的东西。当单元格内容中有“,”时,这将返回名字:(假设您要拆分的字段在A2中,根据需要调整)

=MID(A2;FIND(",";A2)+2;99)

如果没有,这将返回名字:

=MID(A2;1;FIND(" ";A2))

对于有逗号时的姓氏:

=MID(A2;1;FIND(",";A2)-1)

没有姓氏:

=MID(A2;FIND(" ";A2)+1;99)

因此,我们需要测试字符串中是否有“,”,如果没有则处理错误情况(FIND 在未找到时返回#value,ISERROR() 可以测试)。可选地(和我的方法)是检查 FIND 的返回是否产生了一个数字(错误不会)。在这种情况下,“找不到它的错误条件”将产生一个非数字 #Value。

=IF( ISNUMBER( FIND(",";A2)); MID(A2;FIND(",";A2)+2;99); MID(A2;1;FIND(" ";A2)))

对姓氏执行相同的操作如下所示:

=IF( ISNUMBER( FIND(","; A2)); MID(A2;1;FIND(",";A2)-1); MID(A2;FIND(" ";A2)+1;99)) 

请注意,我的解决方案是使用我的电子表格应用程序 OpenOffice。我认为 Excel 有不同的查找方法(搜索?) - 所以根据需要进行调整。

于 2021-10-08T18:32:16.457 回答
-2

上面的答案是不正确的。事实上,对于我自己的名字,Jay Jacob Wind,这个公式是错误的。正确的公式是:

假设 Last, First 在 A 列中,用一个逗号和一个空格键分隔

对于名字:

=mid(A2,find(",",A2)+2,99)

对于姓氏:

=mid(A2,1,find(",",A2)-1)

放在一起,假设 B 列是名字,C 列是姓氏 =B2&" "&C2

或简单地(但更复杂)

=mid(A2,find(",",A2)+2,99)&" "&mid(A2,1,find(",",A2)-1)

但我喜欢将它们分成两列,然后将它们连接起来

于 2014-12-09T03:27:21.867 回答