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

如何在Google Sheets中结合正则匹配与VLOOKUP/数组实现多列查找

解决方案

公式实现

在G3单元格输入以下公式即可实现需求:

=INDEX(Formula Data!A:Z, MATCH(D3, Formula Data!A:A, 0), MATCH(TRUE, REGEXMATCH(Formula Data!2:2, REGEXEXTRACT(C3, "^\\w+")) * REGEXMATCH(Formula Data!2:2, REGEXEXTRACT(E3, "^\\w+")), 0))

公式拆解

  • 提取首词:REGEXEXTRACT(C3, "^\\w+") 和 REGEXEXTRACT(E3, "^\\w+") 分别从C3、E3中提取开头的第一个单词(即"Rural"和"South")。
  • 匹配表头列:REGEXMATCH(Formula Data!2:2, 提取的关键词) 检查Formula Data区域第2行的表头是否包含对应关键词,两个REGEXMATCH相乘表示需同时满足两个关键词的匹配条件,最终用MATCH(TRUE, ..., 0)定位符合条件的列位置。
  • 匹配重量行:MATCH(D3, Formula Data!A:A, 0) 找到Formula Data区域A列中与D3重量(7)匹配的行位置。
  • 提取目标值:INDEX(Formula Data!A:Z, 行位置, 列位置) 提取行与列交叉处的单元格值,即期望的20。

替代方案(使用FILTER)

如果偏好更直观的筛选逻辑,也可使用以下公式:

=FILTER(FILTER(Formula Data!A:Z, Formula Data!A:A=D3), REGEXMATCH(Formula Data!2:2, "^.*"&REGEXEXTRACT(C3, "^\\w+")&".*"&REGEXEXTRACT(E3, "^\\w+")&".*"))

该公式先筛选出重量匹配的行,再从这些行中筛选出表头同时包含两个关键词的列,直接返回目标值。

内容的提问来源于stack exchange,提问作者Mark Thomas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:45:32