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

如何在Google Sheets中创建支持多值查询的数据库搜索工具

解决Google Sheets多值搜索客户信息的方法

针对你需要在Google Sheets中实现多城市名称匹配、提取对应ClientID和Region的需求,以下是两种实用的解决方案:

方法一:FILTER + REGEXMATCH 组合公式

如果你的「Searcher」单元格(比如B4)中用逗号分隔多个城市名称(例如Caracas, Berlin),可以使用以下公式:

=FILTER(CityDB!$P$3:$Z, REGEXMATCH(CityDB!$Y$3:$Y, TEXTJOIN("|", TRUE, TRIM(SPLIT(B4, ",")))))

公式说明:

  • SPLIT(B4, ","):将输入的多城市字符串按逗号拆分成独立的城市列表
  • TRIM():去除每个城市名称前后的空格,避免因格式问题导致匹配失败
  • TEXTJOIN("|", TRUE, ...):将城市列表用|连接成正则表达式的「或」匹配规则(比如Caracas|Berlin)
  • REGEXMATCH(CityDB!$Y$3:$Y, ...):检查客户数据库的城市列(Y列)是否匹配任一目标城市
  • FILTER():返回所有匹配成功的行,包含你需要的ClientID(P列)和Region(Z列)等信息

如果你的「Searcher」是多个单元格区域(比如B4:B5分别输入单个城市),可以简化公式:

=FILTER(CityDB!$P$3:$Z, REGEXMATCH(CityDB!$Y$3:$Y, TEXTJOIN("|", TRUE, B4:B5)))

方法二:QUERY 函数实现精准筛选

如果你更习惯用QUERY函数,同样可以结合正则表达式实现多值匹配,公式如下:

=QUERY(CityDB!$P$3:$Z, "SELECT P, Z WHERE REGEXMATCH(Y, '"&TEXTJOIN("|", TRUE, TRIM(SPLIT(B4, ",")))&"')", 0)

公式说明:

  • SELECT P, Z:指定仅提取ClientID(P列)和Region(Z列),无需返回全量数据
  • REGEXMATCH(Y, ...):同方法一的匹配逻辑,通过拼接正则规则实现多城市匹配
  • 末尾的0表示数据区域无表头(如果你的数据有表头,可改为1)

额外优化:忽略大小写匹配

如果需要忽略城市名称的大小写差异(比如匹配caracas或CARACAS),可以在正则规则前添加(?i):

=FILTER(CityDB!$P$3:$Z, REGEXMATCH(CityDB!$Y$3:$Y, "(?i)"&TEXTJOIN("|", TRUE, TRIM(SPLIT(B4, ",")))))

内容的提问来源于stack exchange,提问作者Edgar Pereira Marin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:50:26