如何在Excel中保留单元格中的前两个单词?

5
我的D1单元格中包含像John Smith Rangpur Bangladesh 5400…这样的名称,我想保留前两个单词,如John Smith,并删除单元格中其他内容。如何编写公式来实现这一点?
我已经在C1上使用了这个公式=LEFT(D1,FIND(" ",D1)-1),但它只返回第一个单词(John)。如何获取第一个和第二个单词,如John Smith
我的单词是用空格分隔的。
提前感谢。
6个回答

9

您需要使用FIND函数的第三个参数。这是查找操作开始的位置。如果您将其设置为第一个空格后面的字符,那么您将找到第二个空格,这正是您所需的。

=LEFT(D1, FIND(" ", D1, FIND(" ", D1) + 1) - 1)

7
这是一个更具可扩展性的公式:
 C1 = LEFT(D1,FIND("|",SUBSTITUTE(D1," ","|",2))-1)

字符串/字符的分隔符是“ ”(空格),它的实例号决定一切。
Substitute函数允许用户替换给定实例号的字符串,这使得对于每个案例具有不同的实例号变得简单(短语的前两个单词,短语的前五个单词等等)。我们用一个新分隔符“|”替换给定实例(比如在此情况下为第二个实例),以从左边确定所需的输出位置。
在上面的答案中,如果用户想要前5个单词而不是前2个单词,则该函数会变得非常复杂,需要在同一个函数中使用多个查找功能。
在这种情况下,用户只需将子函数中的“2”(表示实例编号)替换为“5”。

2
C1 =LEFT(D1,FIND(" ",D1, FIND(" ",D1)+1)-1)

使用选项“起始位置”参数,仅在使用find查找到第一个空格后开始查找,就像你已经做过的那样。点击这里了解更多。

非常感谢您的回复,但是这个公式有一些问题。它无法被Excel接受。 - Tanzil
我猜问题是公式之间有一些空格。非常感谢您的支持! :) - Tanzil

0
在A2中,您应该执行以下操作:
=IF(A1="","",IFERROR(LEFT(A1,FIND(" ",A1,FIND(" ",A1)+1)-1),A1))

=TRIM(LEFT(A1, FIND("~",SUBSTITUTE(A1, " ", "~",2)&"~")))

0
请使用以下代码获取所需的结果:
=TRIM(LEFT(D1, FIND("~",SUBSTITUTE(D1, " ", "~",2)&"~")))

0

如果你的列表上只有一个单词。

=IFERROR(LEFT(H4,FIND(" ",H4,FIND(" ",H4)+1)-1),H4)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接