如果这对您很重要,您还可以使用公式在数据集中提取多行匹配条件:
=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 的内容时,因为电子表格将大于零的值视为布尔值 true,因此,存在 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.*)' "))