125

在 Google 电子表格中,如果某个单元格包含某些字母,我想使用一个公式来输出某个文本或数字。

例如,如果我输入=IF(A1="Black";"YES";"NO")并且 A1 等于“Black” - 它会正确输出“YES”。然而,当我把=IF(A1="Bla";"YES";"NO")它输出“否”。有没有我可以使用的公式,我可以这样说,=IF(A1 CONTAINS "Bla";"YES";"NO")所以它输出“是”。

4

4 回答 4

163

您可以使用RegExMatch

=IF(RegExMatch(A1;"Bla");"YES";"NO")
于 2012-11-28T13:22:16.030 回答
75

一些没有 的选项REGEXMATCH,因为您可能希望不区分大小写并且不想说blastablative触发YES. 使用逗号作为分隔符,就像在 OP 中一样,暂时忽略 IF 条件:

首先非常类似于@user1598086 的回答:

=FIND("bla",A1)

区分大小写,但返回 #VALUE!而不是NO和一个数字而不是YES(但是两者都可以分别更改为NO / YES)。

=SEARCH("bla",A1)  

不区分大小写,因此Black一视同仁black。返回如上。

前者(对于后者等价物)表示是否bla出现A1 中的前三个字符之后:

=FIND("bla",A1,4)  

blazer, black但返回一个数字。 #VALUE!blazer, blue

仅当一个完整的单词单独出现时(即在Bla空格之间 - 不在“句子”的开头或结尾):

=SEARCH(" Bla ",A1) 

由于上述所有情况下的返回值要么是一个数字(“找到”,所以YES首选),或者#VALUE!我们可以使用 ISERROR#VALUE!在 IF 公式中进行测试,例如上面的第一个示例:

 =if(iserror(FIND("bla",A1)),"NO","YES")  

比 长,regexmatch但组件很容易调节。

于 2015-04-23T19:58:32.563 回答
2

您可以使用以下公式,

=IF(ISTEXT(REGEXEXTRACT(A1; "Bla")); "Yes";"No")
于 2018-04-02T10:49:15.863 回答
-8

只需使用 = IF(A1="Bla*","YES","NO")。插入星号时,它充当指定文本后任意数量字符的通配符。

于 2015-05-28T00:44:16.150 回答