Answers:
尝试使用此:
=ISNUMBER(SEARCH("Some Text", A3))
TRUE
如果单元格A3
包含,则将返回Some Text
。
CONTAINS("Text", cell)
功能会很好。
FIND()
的地方SEARCH()
,
而不是时出错;
。将提供的公式更改为=ISNUMBER(SEARCH("Some Text"; A3))
有效后。谢谢!
以下公式确定文本“ CHECK”是否出现在单元格C10中。如果不是,则结果为空白。如果是这样,则结果为工作“检查”。
=IF(ISERROR(FIND("CHECK",C10,1)),"","CHECK")
这个公式对我来说似乎更直观:
=SUBSTITUTE(A1,"SomeText","") <> A1
如果“ SomeText”包含在A1中,则返回TRUE。
在其他答案中提到的IsNumber / Search和IsError / Find公式当然可以工作,但我总是发现自己需要经常查看帮助或在Excel中尝试使用这些帮助。
FIND()
在Excel中签出功能。
句法:
FIND( substring, string, [start_position])
#VALUE!
如果找不到子字符串,则返回。
ISNUMBER
此字段中也可以,仅适用于区分大小写的匹配。
我喜欢Rink.Attendant.6的答案。我实际上想检查多个字符串,并以此方式进行:
首先是情况:可以是房屋建筑商或社区名称的名称,我需要将建筑商归为一组。为此,我正在寻找“建筑商”或“建筑”等字眼。因此-
=IF(OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*builder*")),"Builder","Community")
=OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*construction*"))
?
COUNTIFS
:COUNTIFS(A1,"*builder*",A1,"*construction*")
这是一个老问题,但我认为它仍然有效。
由于没有CONTAINS函数,为什么不在VBA中声明呢?下面的代码使用VBA Instr函数,该函数在字符串中查找子字符串。找不到字符串时返回0。
Public Function CONTAINS(TextString As String, SubString As String) As Integer
CONTAINS = InStr(1, TextString, SubString)
End Function
这是一个古老的问题,但是对于使用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
返回一个错误,如果一个字符串没有发现我用它包裹ISERROR(...)=FALSE
检查真相,然后返回值通缉。如果SEARCH
返回0而不是可读性错误,那就太好了,但是不幸的是,这就是它的工作方式。
另一个重要的注意事项是,IFS
它将返回它首先找到的匹配项,因此排序很重要。例如,如果我的琴弦是Surf, Surfing, Surfs
因为String1,String2,String3
上面,我的电池串是Surfing
将匹配的第一项,而不是第二个,因为子存在的Surf
。因此,公分母需要在列表中排在最后。我IFS
需要被命令Surfing, Surfs, Surf
正确地工作(交换,Surfing
并且Surfs
在这个简单的示例中也可以工作),但Surf
必须是最后一个。
这是我正在使用的公式
=IF( ISNUMBER(FIND(".",A1)), LEN(A1) - FIND(".",A1), 0 )
IFERROR(LEN(A1) - FIND(".", A1), 0)