在 Google 电子表格中,如果某个单元格包含某些字母,我想使用一个公式来输出某个文本或数字。
例如,如果我输入=IF(A1="Black";"YES";"NO")
并且 A1 等于“Black” - 它会正确输出“YES”。然而,当我把=IF(A1="Bla";"YES";"NO")
它输出“否”。有没有我可以使用的公式,我可以这样说,=IF(A1 CONTAINS "Bla";"YES";"NO")
所以它输出“是”。
在 Google 电子表格中,如果某个单元格包含某些字母,我想使用一个公式来输出某个文本或数字。
例如,如果我输入=IF(A1="Black";"YES";"NO")
并且 A1 等于“Black” - 它会正确输出“YES”。然而,当我把=IF(A1="Bla";"YES";"NO")
它输出“否”。有没有我可以使用的公式,我可以这样说,=IF(A1 CONTAINS "Bla";"YES";"NO")
所以它输出“是”。
您可以使用RegExMatch
:
=IF(RegExMatch(A1;"Bla");"YES";"NO")
一些没有 的选项REGEXMATCH
,因为您可能希望不区分大小写并且不想说blast
或ablative
触发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
但组件很容易调节。
您可以使用以下公式,
=IF(ISTEXT(REGEXEXTRACT(A1; "Bla")); "Yes";"No")
只需使用 = IF(A1="Bla*","YES","NO")
。插入星号时,它充当指定文本后任意数量字符的通配符。