是否有一个内置的函数来检查单元格是否包含给定的字符/子字符串?

这意味着您可以在条件基础上应用Left/Right/Mid等文本函数,而不会在没有分隔字符时抛出错误。


当前回答

有趣的*

=COUNT(MATCH("*SomeText*",A1,))
=COUNTA(VLOOKUP("*SomeText*",A1,1,))
=COUNTA(HLOOKUP("*SomeText*",A1,1,))

如果“SomeText”包含在A1中,则返回1。

其他回答

为什么不简单地

COUNTIF(A1,"*xyz*")

这将搜索单元格A1中出现的任何“xyz”。

找到时返回“1”,找不到时返回“0”。

注意,搜索是不区分大小写的,所以xyz, xyz, xyz,等等中的任何一个都会被找到。它在单元格中以子字符串的形式找到这个,所以对于abcxYz,你也能找到。

如果您不想将搜索字符串写入公式本身,则可以使用

COUNTIF(A1,"*" & B1 & "*")

在B1中输入你的搜索字符串。-注意,当B1为空时,公式将返回“found”(“1”),因为搜索字符串将被读取为“**”。

这是一个老问题,但我认为它仍然有效。

既然没有CONTAINS函数,为什么不在VBA中声明它呢? 下面的代码使用VBA Instr函数,它在字符串中查找子字符串。如果没有找到该字符串,则返回0。

Public Function CONTAINS(TextString As String, SubString As String) As Integer
    CONTAINS = InStr(1, TextString, SubString)
End Function

有趣的*

=COUNT(MATCH("*SomeText*",A1,))
=COUNTA(VLOOKUP("*SomeText*",A1,1,))
=COUNTA(HLOOKUP("*SomeText*",A1,1,))

如果“SomeText”包含在A1中,则返回1。

下面的公式确定文本“CHECK”是否出现在单元格C10中。如果没有,则结果为空白。如果是这样,结果就是工作“CHECK”。

=IF(ISERROR(FIND("CHECK",C10,1)),"","CHECK")

我喜欢冰场。6回答。我实际上想检查多个字符串,是这样做的:

首先是这种情况:名称可以是房屋建筑商或社区名称,我需要将建筑商作为一个组。为了做到这一点,我正在寻找“建造者”或“建筑”等词。所以- - -

=IF(OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*builder*")),"Builder","Community")