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

Google Sheets跨表查询:匹配含指定字符串且指定列空白时取值

Google Sheets 公式解决方案

原公式问题分析

你之前的公式存在几个核心错误:

  1. 联合数组{RollingLog!$A2:B;StaticDB!A2:B}仅包含2列,不存在Col4,SELECT Col4会直接报错
  2. LIKE Col3语法错误:既无Col3列,且QUERY中模糊匹配需用通配符(如%关键词%),同时无法直接跨数组引用列
  3. IF语句的写法不符合QUERY的语法规则,WHERE条件需直接声明逻辑判断

正确公式实现

根据你的需求(当RollingLog的Other Data为空,且StaticDB的Code包含在RollingLog的Data中时,返回对应Expanded Info),提供两种常用实现方式:

方式1:返回所有符合条件的结果(多匹配场景)

适用于需要列出所有满足条件的Expanded Info,公式可写入StaticReport的目标单元格:

=FILTER(StaticDB!B2:B, ISNUMBER(SEARCH(StaticDB!A2:A, RollingLog!A2:A)), RollingLog!B2:B="")

公式逻辑:

  • SEARCH(StaticDB!A2:A, RollingLog!A2:A):检查StaticDB的Code是否包含在RollingLog的Data文本中,返回匹配位置(无匹配则返回错误)
  • ISNUMBER(...):将SEARCH的结果转换为布尔值(匹配则为TRUE)
  • RollingLog!B2:B="":判断RollingLog的Other Data列是否为空
  • FILTER:仅保留同时满足上述两个条件的StaticDB的Expanded Info

方式2:返回第一个符合条件的结果(单匹配场景)

如果只需要第一个匹配的Expanded Info,可使用XLOOKUP:

=IFERROR(XLOOKUP(TRUE, ISNUMBER(SEARCH(StaticDB!A2:A, RollingLog!A2:A))*(RollingLog!B2:B=""), StaticDB!B2:B), "")

公式逻辑:

  • ISNUMBER(...) * (RollingLog!B2:B=""):用乘法将两个布尔条件合并(同时为TRUE时结果为1,即TRUE)
  • XLOOKUP:找到第一个满足合并条件的位置,返回对应的StaticDB的Expanded Info
  • IFERROR:无匹配结果时返回空文本,避免显示错误

内容的提问来源于stack exchange,提问作者m.person

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 09:43:18