Google Sheets:如何筛选任意列含指定文本的行(非精确匹配)
在Google Sheets中筛选任意列含指定单词的行
以下两种方法可以实现筛选任意列中包含指定单词(无需精确匹配,可与其他文本共存)的行,以筛选单词blue为例:
方法1:用内置筛选工具(直观操作)
- 选中数据区域内任意单元格,点击菜单栏「数据」→「创建筛选」
- 点击任意列的筛选箭头,选择「筛选条件」→「自定义公式」
- 输入公式(按需调整列范围,示例中A2:Z2覆盖当前行所有列):
=REGEXMATCH(TEXTJOIN(" ", TRUE, A2:Z2), "\bblue\b")- 若不需要严格匹配完整单词(比如要匹配
blues、blueberry),去掉正则边界\b,写成=REGEXMATCH(TEXTJOIN(" ", TRUE, A2:Z2), "blue")
- 若不需要严格匹配完整单词(比如要匹配
- 点击「确定」即可筛选出符合条件的行
方法2:用QUERY函数生成独立筛选结果
如果需要在新区域生成筛选后的结果,适合用QUERY函数。假设原始数据在A1:Z100区域,在空白单元格输入:
=QUERY(A1:Z100, "select * where "&TEXTJOIN(" or ", TRUE, ARRAYFORMULA("lower(Col"&ROW(INDIRECT("1:"&COLUMNS(A1:Z100)))&") contains 'blue'")), 1)
- 公式说明:
ARRAYFORMULA自动为每一列生成匹配条件(如Col1 contains 'blue')TEXTJOIN(" or ", ...)将所有列的条件用or连接,实现任意列匹配lower()让匹配不区分大小写,若需要区分大小写则删除该部分- 最后一个参数
1表示原始数据包含表头,无表头则改为0
内容的提问来源于stack exchange,提问作者Dan Heller
相关产品推荐
相关产品推荐

