You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets的QUERY函数中引用整个数据集

Google Sheets QUERY公式简化方案

Google Sheets的QUERY函数本身不支持直接在WHERE子句中用整个数据集范围(如B5:M3981)执行contains判断,因为contains仅针对单个列生效。不过可以通过以下两种方案实现类似的简化效果:

方案1:结合REGEXMATCH与JOIN拼接列

通过将目标列内容拼接为单个字符串,再用正则匹配检查关键词,公式如下:

=QUERY(Database!B5:M3981,"SELECT * WHERE REGEXMATCH(JOIN(' ', B,C,D,E,F,H), '"&REGEXREPLACE($B2, "[.]", "\\.")&"')",0)
  • JOIN(' ', B,C,D,E,F,H):将需要检查的列(B、C、D、E、F、H)内容用空格拼接成单行文本
  • REGEXREPLACE($B2, "[.]", "\\."):转义搜索关键词中的正则特殊字符(如点号),避免匹配逻辑出错
  • REGEXMATCH:检查拼接后的文本是否包含目标关键词

方案2:用BYROW+FILTER实现整行检查

若更倾向于直观的行级判断逻辑,可使用FILTER配合BYROW完成:

=FILTER(Database!B5:M3981, BYROW(Database!B5:M3981, LAMBDA(row, OR(REGEXMATCH(INDEX(row,,2), $B2), REGEXMATCH(INDEX(row,,3), $B2), REGEXMATCH(INDEX(row,,4), $B2), REGEXMATCH(INDEX(row,,5), $B2), REGEXMATCH(INDEX(row,,6), $B2), REGEXMATCH(INDEX(row,,8), $B2)))))
  • BYROW:遍历数据集中的每一行
  • LAMBDA(row, ...):对每行的指定列(对应原公式的B、C、D、E、F、H列)执行正则匹配判断
  • OR:只要任意一列匹配关键词,就保留该行
  • FILTER:输出符合条件的所有行

内容的提问来源于stack exchange,提问作者Zachary DROUIN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 08:45:14