首页 > 解决方案 > 反向查找(从右到左,FINDrev)函数 Excel UDF

问题描述

我花了很长时间在 Excel 中搜索一个简单的 FIND-in-reverse 函数,发现一些公式对我的口味来说太长了(例如,如何在 Excel 中执行反向字符串搜索而不使用 VBA?)。

所以我最终创建了我自己更简单的一个,如下所示,它通过查找最后一个空格(或从右到左的第一个空格)的位置为您提供字符串中的最后一个单词。

=RIGHT(A1,FINDrev(” “,A1))

如果你在上面的句子上运行这个公式(放在单元格 A1 中),它会给你结果“左”。您只需定义一个 3 行 VBA UDF FINDrev() 并将其保存在永久可用的 xlam 插件中:

Public Function FINDrev(Find_text As String, Within_text As String)
FINDrev = Len(Within_text)-Len(Find_text)-InStrRev(Within_text, Find_text)+1
End Function

有没有人找到更简单的 FIND-in-reverse 解决方案?

标签: excelfinduser-defined-functionsright-to-leftstring-search

解决方案


您可以尝试 VBA 内置函数InStrRev()

您可以在此处找到文档,https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/instrrev-function

我会做一个这样的UDF。

Function myRightRev(find_text As String, Within_text As String) As String
    myRightRev = Mid(Within_text, InStrRev(Within_text, find_text) + 1)
End Function

推荐阅读