如何在不使用VBA的情况下在Excel中执行反向字符串搜索?

我有一个包含字符串列表的Excel电子表格。每个字符串由几个单词组成,但每个字符串中的单词数不同

使用内置Excel函数(无VBA),是否有办法隔离每个字符串中的最后一个单词

示例:

你被归类为人类吗?->人类
不,我是一个肉冰棒->冰棒
阿齐兹!光!->灯

这一条经过测试并有效(基于Brad的原始帖子):

=右(A1,LEN(A1)-查找(“|”),替换(A1),“|”,
LEN(A1)-LEN(替换为(A1,“,”))))

如果原始字符串可能包含管道“|”字符,则用源代码中不会出现的其他字符替换上述两个字符。(我怀疑布拉德的原作被破坏是因为翻译中删除了一个无法打印的字符)

奖励:工作原理(从右到左):

LEN(A1)-LEN(替换为(A1,“,”)–原始字符串中的空格计数
替换(A1,“,”|“,…)–用|
查找(“|”,…)–查找被替换的|(即最后一个空格)的绝对位置
右(A1,LEN(A1)-…)–返回该|

编辑:要考虑源文本不包含空格的情况,请在公式开头添加以下内容:

=IF(iError(FIND(“,A1)),A1,…)

现在制作整个公式:

=IF(iError(FIND(“,A1)),A1,RIGHT(A1,LEN(A1))FIND(“,A1”),
替换(A1,“,”|“,”LEN(A1)-LEN(替换(A1,“,”))))

或者您可以使用另一个版本的=IF(COUNTIF(A1,“**”)语法

当原始字符串可能在最后一个位置包含空格时,请在计算所有空格时添加修剪函数:使函数如下所示:

=IF(ISERROR(FIND(“,B2)),B2,RIGHT(B2,LEN(B2))FIND(“,B2”),
替换(B2,“,”|“,”LEN(修剪(B2))-LEN(替换(B2,“,”))))

发表评论