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

Google Sheets 范围侧子字符串匹配查询实现方法咨询

在Google Sheets中实现「范围单元格作为子串匹配查找值」的方法

好问题!你提到的VLOOKUP("*"&A2&"*",$C$2:$C,1,FALSE)是让查找值作为子串去匹配范围里的完整单元格(即找C列中包含A2内容的项),而你现在需要的是反过来——让范围里的单元格作为子串去匹配查找值(即找C列中被A2包含的项),对吧?下面给你几个实用的原生函数解决方案:

1. 匹配第一个符合条件的结果(INDEX+MATCH组合)

这是最经典的数组公式写法,能返回C列中第一个被A2包含的单元格内容:

=INDEX($C$2:$C, MATCH(TRUE, ISNUMBER(SEARCH($C$2:$C, A2)), 0))

公式拆解:

  • SEARCH($C$2:$C, A2):遍历C列的每个单元格,检查A2是否包含该单元格的内容。如果包含返回起始位置(数字),不包含则返回错误值。
  • ISNUMBER(...):把数字结果转为TRUE,错误值转为FALSE,得到一个布尔值数组。
  • MATCH(TRUE, ..., 0):找到数组中第一个TRUE的位置(0表示精确匹配)。
  • INDEX($C$2:$C, ...):根据找到的位置,返回C列对应的单元格内容。

提示:如果需要区分大小写匹配,把SEARCH换成FIND即可。

2. 返回所有符合条件的结果(FILTER函数)

如果你需要一次性返回C列中所有被A2包含的项,用FILTER更直接:

=FILTER($C$2:$C, ISNUMBER(SEARCH($C$2:$C, A2)))

这个公式会自动筛选出所有满足「单元格内容是A2子串」的项,没有匹配结果时会返回#N/A,你可以用IFERROR包裹来自定义提示:

=IFERROR(FILTER($C$2:$C, ISNUMBER(SEARCH($C$2:$C, A2))), "无匹配结果")

3. 更简洁的单函数写法(XLOOKUP)

如果你使用的是较新版本的Google Sheets,XLOOKUP可以一步实现匹配第一个结果的需求,语法更直观:

=XLOOKUP(TRUE, ISNUMBER(SEARCH($C$2:$C, A2)), $C$2:$C, "无匹配结果")

这里的XLOOKUP会直接查找第一个TRUE对应的C列值,最后一个参数是无匹配时的自定义提示,非常灵活。

内容的提问来源于stack exchange,提问作者Max Corbeau

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:01:23