检查单元格是否包含子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
才能正常工作(交换Surfing
和Surfing
也将在这个简单的例子),但Surf
将需要最后。
这是我正在使用的公式
=IF( ISNUMBER(FIND(".",A1)), LEN(A1) - FIND(".",A1), 0 )