📅  最后修改于: 2023-12-03 15:37:35.387000             🧑  作者: Mango
如果你需要在Excel中查找一个以特定值结尾的字符串,同时还需要返回它在单元格中的位置,那么可以使用以下的几种办法。
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,即为该字符串在单元格中的位置。否则返回一个空字符串。
如果字符串的结尾字符不定,只需要查找是否包含特定的字符串,则可以使用Excel中的SEARCH函数。
例如,我们要查找包含字符串“hello”的字符串在单元格A1中的位置,可以使用以下公式:
=IF(ISNUMBER(SEARCH("hello",A1)),SEARCH("hello",A1),"")
在这个公式中,SEARCH函数用来查找字符串“hello”在单元格A1中的位置,如果它存在,则返回位置,否则返回一个空字符串。
如果以上的方法不够灵活,或需要进行更复杂的操作,可以使用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表示要查找的单元格。
以上三种方法各有优缺点,可以根据具体的需求进行选用。