在 Google 电子表格中,我希望使用一个公式,如果某个单元格包含某些字母,它将输出某个文本或数字。
例如,如果我把 =IF(A1="Black";"YES";"NO")和 A1等于“黑色”-它输出“是”正确。但是,当我把 =IF(A1="Bla";"YES";"NO")输出“ NO”。有没有公式,我可以使用,我可以说一些像 =IF(A1 CONTAINS "Bla";"YES";"NO"),使它输出“是”。
=IF(A1="Black";"YES";"NO")
=IF(A1="Bla";"YES";"NO")
=IF(A1 CONTAINS "Bla";"YES";"NO")
你可以使用 RegExMatch:
RegExMatch
=IF(RegExMatch(A1;"Bla");"YES";"NO")
一些没有 REGEXMATCH的选项,因为您可能希望不区分大小写,而不希望说 blast或 ablative触发 YES。在 OP 中使用逗号作为分隔符,暂时忽略 IF 条件:
REGEXMATCH
blast
ablative
YES
第一个非常类似@user1598086的回答:
=FIND("bla",A1)
是区分大小写的,但返回 # Value!而不是 NO和一个数字而不是 YES(两者都可以分别改为 NO/YES)。
NO
=SEARCH("bla",A1)
Case insensitive, so treats Black and black equally. Returns as above.
Black
black
前者(对于后者等价物)表示 bla是否在 A1中呈现 之后的前三个字符:
bla
=FIND("bla",A1,4)
返回 blazer, black的数字,而 blazer, blue的数字返回 #VALUE!。
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'):
Bla
=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.
regexmatch
只要使用 = IF(A1="Bla*","YES","NO")。当插入星号时,它作为指定文本后任意数量字符的通配符。
IF(A1="Bla*","YES","NO")
您可以使用以下公式,
=IF(ISTEXT(REGEXEXTRACT(A1; "Bla")); "Yes";"No")