📌  相关文章
📜  在excel中返回一个以特定值结尾的字符串 (1)

📅  最后修改于: 2023-12-03 15:37:35.387000             🧑  作者: Mango

在Excel中返回一个以特定值结尾的字符串

如果你需要在Excel中查找一个以特定值结尾的字符串,同时还需要返回它在单元格中的位置,那么可以使用以下的几种办法。

使用RIGHT和LEN函数

Excel中的RIGHT和LEN函数可以配合使用来获取字符串的最右侧的n个字符。结合IF函数,我们可以返回一个以特定值结尾的字符串在单元格中的位置。

例如,我们要查找以“ing”结尾的字符串在单元格A1中的位置,可以使用以下公式:

=IF(RIGHT(A1,3)="ing",LEN(A1)-2,"")

在这个公式中,RIGHT(A1,3)表示单元格A1中的最后3个字符,如果它们是“ing”,则返回单元格A1中字符串的长度(LEN(A1)),减去“ing”的长度2,即为该字符串在单元格中的位置。否则返回一个空字符串。

使用SEARCH函数

如果字符串的结尾字符不定,只需要查找是否包含特定的字符串,则可以使用Excel中的SEARCH函数。

例如,我们要查找包含字符串“hello”的字符串在单元格A1中的位置,可以使用以下公式:

=IF(ISNUMBER(SEARCH("hello",A1)),SEARCH("hello",A1),"")

在这个公式中,SEARCH函数用来查找字符串“hello”在单元格A1中的位置,如果它存在,则返回位置,否则返回一个空字符串。

使用VBA

如果以上的方法不够灵活,或需要进行更复杂的操作,可以使用Excel的宏。

首先打开Visual Basic Editor(开发人员选项卡-Visual Basic),然后插入一个新的模块(插入-模块),编写以下代码:

Function FindEndString(cell As Range, str As String) As Variant
    Dim position As Integer
    position = InStrRev(cell, str)
    If position > 0 Then
        FindEndString = Right(cell, Len(cell) - position + 1)
    Else
        FindEndString = ""
    End If
End Function

这个代码定义了一个名为FindEndString的函数,参数为单元格和需要查找的字符串。它使用InStrRev函数查找从右侧开始的字符串位置,然后返回单元格中从该位置到字符串结尾的子串。

然后,在Excel中输入公式:

=FindEndString(A1,"ing")

其中A1表示要查找的单元格。

以上三种方法各有优缺点,可以根据具体的需求进行选用。