微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

这个已经过测试并且确实有效(基于 Brad 的原始帖子):

=RIGHT(A1,LEN(A1)-FIND("|",SUBSTITUTE(A1," ","|",
     LEN(A1)-LEN(SUBSTITUTE(A1," ","")))))

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

奖励:它是如何工作的(从右到左):

LEN(A1)-LEN(SUBSTITUTE(A1," ",""))“原始字符串中的空格计数SUBSTITUTE(A1," ","|", ... )”仅用 a 替换 最后一个 空格|FIND("|", ... )“查找被替换的绝对位置|(即最后一个空格)Right(A1,LEN(A1) - ... ))”返回之后的所有字符|

考虑源文本不包含空格的情况,将以下内容添加到公式的开头:

=IF(ISERROR(FIND(" ",A1)),A1, ... )

现在制作整个公式:

=IF(ISERROR(FIND(" ",A1)),A1, RIGHT(A1,LEN(A1) - FIND("|",
    SUBSTITUTE(A1," ","|",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))))

或者您可以使用=IF(COUNTIF(A1,"* *")其他版本的语法。

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

=IF(ISERROR(FIND(" ",B2)),B2, RIGHT(B2,LEN(B2) - FIND("|",
    SUBSTITUTE(B2," ","|",LEN(TRIM(B2))-LEN(SUBSTITUTE(B2," ",""))))))

解决方法

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

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

例子:

  你被归类为人类吗?-> 人类?
否定,我是肉冰棒->冰棒
                  阿齐兹!光!-> 光!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。