查找字符串中某个字符的最后一个实例并保留其之前的所有内容

查找字符串中某个字符的最后一个实例并保留其之前的所有内容

我有以下数据,我需要删除数字。这意味着我必须找到字符“ ”的最后一次出现并保留之前的所有内容,但我不知道如何编写公式。

文本长度不定,也可以是多个单词。数字不超过3位。

**String**
abc 61
abc 79
ac 1
ab 123
a bc 12

谢谢!

答案1

尝试这个公式:

=SUBSTITUTE(A1, TRIM(RIGHT(SUBSTITUTE(A1, " ", REPT(" ", 99)), 99)), "")

结果:

在此处输入图片描述
(由于我的区域设置,屏幕截图中的公式使用了分号。)


具体来说:

  1. =SUBSTITUTE(A1, " ", REPT(" ", 99))

    这会将每个出现的所需分隔符(在您的情况下为空格)替换为 99 个空格。具体数字并不重要,只要它大于最长单个单词的长度即可。

  2. =TRIM(RIGHT(..., 99))

    这将获取最右边的 99 个字符(此处使用的数字与步骤 1 中相同,这一点很重要)并修剪它们(从开头和结尾删除空格)。本质上,这将为您提供文本最后一个空格。

  3. =SUBSTITUTE(A1, ..., "")

    因为你想要文本最后一个空格,这只是将步骤 2 的结果替换为空字符串,从而将其删除。现在只剩下单元格的内容直到并包括最后一个空格字符。如果您还想删除尾随空格,可以再运行=TRIM()一次。

答案2

我会用这个公式 -

=LEFT(A1,LOOKUP(9.9999999999E+307,FIND(" ",A1,ROW($1:$1024))))

它找到最后一个实例并使用它来定义从left

编辑-添加,$1:$1024因为出于某种原因,ROW()较短的字符串失败。

在此处输入图片描述

答案3

保持最后一项功能:

=TRIM(LEFT(SUBSTITUTE(A1;"TARGETCHAIN";REPT(" ";LEN(A1)));LEN(A1)))

法语版本:;-)

=SUPPRESPACE(GAUCHE(SUBSTITUE(A1;"TARGETCHAIN";REPT(" ";NBCAR(A1)));NBCAR(A1)))

.. 当“TARGETCHAIN”设置为空格时可以完美运行:“ ”

相关内容