40 我试图弄清楚如何识别IF一个单元格中包含值或字符串的项目列表。 例 单元格A1包含sites, sheets, docs, slides。 我希望单元格B1显示1个“如果”单元格A1包含字符串sites。 式 =if(A1 ?????? "sites", 1,0) 我不确定用什么替换??????上面的公式,或者如果可能的话。非常感谢任何有关如何实现预期结果的想法。 google-sheets formulas google-sheets-query regex — B先生 source
55 您可以使用REGEXMATCH: =IF(REGEXMATCH(A1, "sites"), 1, 0) 解释一下,当且仅当参数是字符串的子字符串时,REGEXMATCH才返回true。 — 奥里尔·佩尔曼(Aurielle Perlmann) source 10 使用起来regexmatch会更简单:if(regexmatch(A1, "sites"), 1, 0)。 1 因为regexmatch已经返回了布尔值,所以不需要“ if”,因此只需“ REGEXMATCH(A1,“ sites”)“ — David 2 如果在那里,则可以将true转换为1或0(如果为false) — Aurielle Perlmann
7 =if(search("sites",B2)>0,1,0) =if(IFERROR(search("sites",B2)>0,0),1,0) 两者都可以。如果有错误,第二个将写入0。 — 汤姆·伍德沃德 source 2 第一个公式永远不会返回0,因为找不到SEARCH(search_for, text_to_search, [starting_at])时会返回错误search_for。 — 鲁本
1 您之所以这样做,是因为您想知道其中包含“站点”一词的行数或平均行数。假设在A列中有100行条目,则可以使用此函数找出其中有“ sites”一词的行: =QUERY(A1:A100, "select count(A) where A like '%sites%'") 这比创建1和0的列然后在该新列上进行操作要快得多。 — 瑞安·希灵顿(Ryan Shillington) source 可以在一个框上而不是一个栏上工作吗? — 亚当·斯塔吉尔 对。而不是A1:A100你可以把它A1:C100再写入与列A,B和C查询 — 瑞安希林
1 没有REGEX的解决方案: =if(iserror(FIND("sites",B2)),0,1) if考虑到答案是true在找不到字符串时,大写问题和逻辑必须颠倒。 — 阿德里亚 source 这与该答案基本相同,但介绍了区分大小写的内容。顺便说一下,OP提供的样本数据sheets不包括Sheets。 — 鲁本
0 如果您像Ryan Shillington所建议的那样,想知道其中包含“位点”的范围内的单元格数量,则可以尝试: =COUNTIF(A1:A100;"*sites*") *用作通配符概念,因此它将在单元格中的任何位置查找匹配项,而不仅仅是整个单元格的完全匹配项。 我也使用单元格引用而不是“ sites ” 来完成此操作,但是随后您必须在单元格中的文本中添加通配符-星号。 — 海蒂 source
regexmatch
会更简单:if(regexmatch(A1, "sites"), 1, 0)
。