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

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

使用运算符进行简单算术运算 4 分 44 秒

创建新数据库 3 分 2 秒

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

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

使用运算符进行简单算术运算

创建新数据库

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

但此功能仅删除最后一个单词。如何从每个单元格中删除最后两个单词?

答案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))

答案2

这是一个可以做到这一点的公式。虽然有点长,但可以解决问题:

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

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

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

相关内容