检查单元格中是否有特定字母或一组字母

use*_*724 118 google-sheets

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

例如,如果我放置=IF(A1="Black";"YES";"NO")并且A1等于"黑色" - 它正确地输出"是".但是当我把=IF(A1="Bla";"YES";"NO")它输出"NO"时.有没有我可以使用的公式,我可以这样说=IF(A1 CONTAINS "Bla";"YES";"NO"),输出"是".

小智 156

你可以使用RegExMatch:

=IF(RegExMatch(A1;"Bla");"YES";"NO")
Run Code Online (Sandbox Code Playgroud)


pnu*_*uts 73

有些选项没有REGEXMATCH,因为你可能想要不区分大小写并且不想说blastablative触发a YES.使用逗号作为分隔符,如在OP中,暂时忽略IF条件:

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

=FIND("bla",A1)
Run Code Online (Sandbox Code Playgroud)

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

=SEARCH("bla",A1)  
Run Code Online (Sandbox Code Playgroud)

不区分大小写,所以对待Blackblack平等.如上返回.

前者(后者等同于)表示在A1中的前三个字符是否bla存在:

=FIND("bla",A1,4)  
Run Code Online (Sandbox Code Playgroud)

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

Bla只查找完整单词本身(即空格之间 - 不在'句子'的开头或结尾):

=SEARCH(" Bla ",A1) 
Run Code Online (Sandbox Code Playgroud)

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

 =if(iserror(FIND("bla",A1)),"NO","YES")  
Run Code Online (Sandbox Code Playgroud)

regexmatch组件长,但组件很容易调整.