检查单元格是否包含子string

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

这意味着您可以在有条件的基础上应用文本function,例如在分隔字符不存在时不会引发错误。

尝试使用这个:

 =ISNUMBER(SEARCH("Some Text", A3)) 

如果单元格A3包含Some Text这将返回TRUE

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

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

对于那些想在IF语句中使用单个函数的人,我使用

 =IF(COUNTIF(A1,"*TEXT*"),TrueValue,FalseValue) 

以查看子stringTEXT是否在单元格A1中

[注意:TEXT需要在它周围有星号…我不知道如何防止系统从我的post中删除]

查看Excel中的FIND()函数。

句法:

 FIND( substring, string, [start_position]) 

返回#VALUE! 如果没有find子string。

这个公式似乎更直观:

 =SUBSTITUTE(A1,"SomeText","") <> A1 

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

在其他答案中提到的IsNumber / Search和IsError / Find公式当然有用,但是我经常发现自己需要经常查看帮助或在Excel中进行试验。

我喜欢Rink.Attendant.6的答案。 我其实想要检查多个string,并且这样做:

首先是这样的情况:名称可以是房屋build筑商或社区名称,我需要把build筑商分成一组。 要做到这一点,我正在寻找“build设者”或“build设”等字样。所以 –

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

这是一个老问题,但是对于那些使用Excel 2016或更新版本的用户,您可以通过使用新的IFS( condition1, return1 [,condition2, return2] ...)条件去除对嵌套if结构的需求。

我已经格式化了它,以便更清楚地说明如何在这个问题的情况下使用它:

 =IFS( ISERROR(SEARCH("String1",A1))=FALSE,"Something1", ISERROR(SEARCH("String2",A1))=FALSE,"Something2", ISERROR(SEARCH("String3",A1))=FALSE,"Something3" ) 

由于SEARCH返回一个错误,如果没有find一个string,我用ISERROR(...)=FALSE包装它来检查真相,然后返回所需的值。 如果SEARCH为了可读性而返回0而不是错误,那将是非常好的,但那只是它不幸的工作原理。

另一个值得注意的地方是, IFS将返回首先find的匹配,因此sorting很重要。 例如,如果我的string是Surf, Surfing, Surfs String1,String2,String3上面的String1,String2,String3和我的单元格string是Surfing ,它将匹配第一项而不是第二项,因为子string是Surf 。 因此,共同的分母需要列在最后。 我的IFS将需要订购Surfing, Surfs, Surf才能正常工作(交换SurfingSurfing也将在这个简单的例子),但Surf将需要最后。

这是我正在使用的公式

=IF( ISNUMBER(FIND(".",A1)), LEN(A1) - FIND(".",A1), 0 )