如果这对您很重要,您还可以使用公式在数据集中提取与条件匹配的多行:
=arrayformula(filter(row(B:B); B:B="c"))
并且您可以使用通配符类型的运算符,在某些情况下(您将匹配文本或看起来像文本的项目(因此数字可以被视为文本 - 但布尔值需要更多步骤);数据集不是很大),使用正则表达式。例如
=arrayformula(filter(row(B:B); regexmatch(B:B, "(c|d)")))
您还可以使用标准电子表格通配符运算符,例如
=arrayformula(filter(row(B:B); countif(B:B, "*c*")))
说明:在这种情况下,过滤器将在 countif 大于零时为真,即当它看到带有字母 c 的东西时,因为电子表格将大于零的值视为布尔值,因此对于存在的那一行是 countif 匹配,将有一个过滤器匹配,因此它将显示该行(实际上,在上述情况下,当匹配 c 或 d 时,正则表达式匹配创建 true 的情况类似)。
就个人而言,我想学习一点正则表达式,所以我会选择 regexmatch 选项。但这是你的选择。
当然,您也可以在单元格之外创建匹配项。这样可以轻松创建要在工作表上其他地方满足的匹配列表。所以你可以有一列单词或部分单词,从 Z2 向下,然后在单元格 Z1 中将它们连接在一起,例如像这样
="("&join("|",filter(Z2:Z50,len(Z2:Z50)))&")"
然后您的过滤器功能将如下所示:
=arrayformula(filter(row(B:B), regexmatch(B:B, Z1)))
如果你想在查询函数中使用 like 运算符,你可以尝试这样的操作:
=arrayformula(query(if({1,0}, B:B,row(B:B)),"select Col2 where Col1 like '%c%' "))
您还可以在查询函数中使用正则表达式,例如:
=arrayformula(query(if({1,0}, B:B,row(B:B)),"select Col2 where Col1 matches '(.*c.*|.*d.*)' "))