我有以下数据,我需要删除数字。这意味着我必须找到字符“ ”的最后一次出现并保留之前的所有内容,但我不知道如何编写公式。
文本长度不定,也可以是多个单词。数字不超过3位。
**String**
abc 61
abc 79
ac 1
ab 123
a bc 12
谢谢!
答案1
尝试这个公式:
=SUBSTITUTE(A1, TRIM(RIGHT(SUBSTITUTE(A1, " ", REPT(" ", 99)), 99)), "")
结果:
(由于我的区域设置,屏幕截图中的公式使用了分号。)
具体来说:
=SUBSTITUTE(A1, " ", REPT(" ", 99))
这会将每个出现的所需分隔符(在您的情况下为空格)替换为 99 个空格。具体数字并不重要,只要它大于最长单个单词的长度即可。
=TRIM(RIGHT(..., 99))
这将获取最右边的 99 个字符(此处使用的数字与步骤 1 中相同,这一点很重要)并修剪它们(从开头和结尾删除空格)。本质上,这将为您提供文本后最后一个空格。
=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”设置为空格时可以完美运行:“ ”