Excel函数从单元格中删除最后两个单词


1

使用运算符进行简单的算术4m 44s

创建新数据库3m 2s

这是两个Excel单元格中的两个值。

我想删除最后两个单词,即每个单元格的4m 44s,以便输出应该是:

使用运算符进行简单算术

创建新数据库

=LEFT(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-1)))

但是这个功能只删除了最后一个单词。如何从每个单元格中删除最后两个单词?


我只是密切关注你的公式,并意识到它与我在下面发布的那个相同。然后,我测试了你的公式,并意识到它的工作原理(留下了尾随空间)。你能发布一些你的公式失败的示例文本吗?
Excellll 2012年

Answers:


1

这是一个可以做到的公式。它有点长,但它会起作用:

=LEFT(A1,FIND("@@REPLACE@@",SUBSTITUTE(TRIM(A1)," ","@@REPLACE@@",LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))-1))-1)

该公式通过使用SUBSTITUTE函数来替换倒数第二个空格,并使用一些不太可能在文本中任何其他位置找到的模糊替换文本(示例中为“@@ REPLACE @@”)。然后该LEFT函数可以返回替换文本左侧的所有内容。这样做的原因是因为FIND不允许您指定空格的实例,而是指定起始位置,这在这种情况下无用。 SUBSTITUTE但是,您可以指定空间的实例编号,这就是使用它的原因。

对于包含两个或更少单词的文本,预计会返回错误。


1

可能你的文本中有一个尾随空格,因为Excellll说它应该起作用。尝试添加一些TRIM函数来删除尾随空格(TRIM也将删除任何前导空格并将任何双重内部空间放入单个空格中......但我认为这不会有问题吗?)

=LEFT(TRIM(A1),FIND(CHAR(1),SUBSTITUTE(TRIM(A1)," ",CHAR(1),LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))-1)))

或者这是另一种(更短的)方式,

=TRIM(LEFT(A1,FIND(TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",9)),18)),A1)-1))

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.