如何在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, "^.*"®EXEXTRACT(C3, "^\\w+")&".*"®EXEXTRACT(E3, "^\\w+")&".*"))
该公式先筛选出重量匹配的行,再从这些行中筛选出表头同时包含两个关键词的列,直接返回目标值。
内容的提问来源于stack exchange,提问作者Mark Thomas
相关产品推荐
相关产品推荐

