Google Sheets:实现带通配符的VLOOKUP搜索
实现带通配符规则的分类匹配(Google Sheets)
原公式仅支持精确匹配,要实现参考表中带通配符(*、?)的搜索规则匹配,可使用结合正则匹配的数组公式替代:
=ARRAYFORMULA(IF(B2:B="", "", IFERROR( INDEX(Reference!B:B, MATCH(TRUE, REGEXMATCH(B2:B, SUBSTITUTE(SUBSTITUTE(Reference!A:A, "*", ".*"), "?", ".")), 0) ), "Unknown") ))
公式说明
- 通配符转正则:通过
SUBSTITUTE把参考表SearchTerm列的*(匹配任意长度字符)转为正则的.*,?(匹配单个任意字符)转为正则的.,让REGEXMATCH能识别通配符规则。 - 匹配逻辑:
REGEXMATCH(B2:B, ...)逐个检查主表Text列内容是否符合参考表规则,返回布尔值数组;MATCH(TRUE, ..., 0)定位第一个匹配的规则位置,再通过INDEX提取对应的FoundCategory。 - 批量处理与容错:
ARRAYFORMULA实现整列批量计算,外层IF处理空值,IFERROR在无匹配时返回Unknown。
规则匹配示例
对应你提到的参考表规则:
House:仅匹配主表中完全等于House的文本Dog*:匹配所有以Dog开头的文本(如Doggy、Dog123)*Bird*:匹配所有包含Bird的文本(如BlueBird、BirdHouse)
注意事项
如果参考表中有多个规则能匹配同一文本,公式会返回第一个出现的规则对应的分类,请按优先级调整参考表中规则的顺序。
内容的提问来源于stack exchange,提问作者user765151
相关产品推荐
相关产品推荐

