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

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

例如,如果我把 =IF(A1="Black";"YES";"NO")和 A1等于“黑色”-它输出“是”正确。但是,当我把 =IF(A1="Bla";"YES";"NO")输出“ NO”。有没有公式,我可以使用,我可以说一些像 =IF(A1 CONTAINS "Bla";"YES";"NO"),使它输出“是”。

346807 次浏览

你可以使用 RegExMatch:

=IF(RegExMatch(A1;"Bla");"YES";"NO")

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

第一个非常类似@user1598086的回答:

=FIND("bla",A1)

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

=SEARCH("bla",A1)

Case insensitive, so treats Black and black equally. Returns as above.

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

=FIND("bla",A1,4)

返回 blazer, black的数字,而 blazer, blue的数字返回 #VALUE!

To find Bla only when a complete word on its own (ie between spaces - not at the start or end of a 'sentence'):

=SEARCH(" Bla ",A1)

由于上述所有情况下的返回值要么是一个数字(“ found”,因此 YES优先) ,要么是 #VALUE!,我们可以使用 ISERROR 在 IF 公式中测试 #VALUE!,例如以上第一个例子:

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

Longer than the regexmatch but the components are easily adjustable.

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

您可以使用以下公式,

=IF(ISTEXT(REGEXEXTRACT(A1; "Bla")); "Yes";"No")