在Excel中实现VLOOKUP模糊匹配,需要借助通配符的力量。星号(*)能匹配任意长度的字符(例如“销售*”),问号(?)则对应单个未知字符(如“A?C??”),让查找更加灵活。请注意,如果目标文本本身包含*或?字符,必须用波浪号(~)进行转义才能将其作为普通字符匹配。对于更高级或更灵活的模糊查找需求,可以考虑使用INDEX-MATCH搭配SEARCH函数,或直接利用FILTER函数来实现。

当您需要在Excel中使用VLOOKUP查找不完全匹配的文本,比如仅包含部分关键词、特定前缀或存在包含关系的记录时,通配符模糊匹配就成为关键技巧。下面这几种通配符组合方式既实用又直接:
本文操作环境:MacBook Air,macOS Sequoia系统。
一、使用星号(*)匹配任意长度字符
星号(*)代表了零个或多个任意字符,非常适合用来查找以特定字符串开头、结尾或中间包含某个子串的记录。采用此方法时,务必确保VLOOKUP的第四个参数设为FALSE以启用精确匹配模式。如果启用了近似匹配(参数为TRUE或省略),通配符将无法生效。
1、在目标单元格输入公式:=VLOOKUP(“销售*”&A2&”*”, Sheet2!A:B, 2, FALSE)。
2、将公式中的“销售*”替换为您实际需要的前缀,A2则是待匹配的关键词单元格。
3、按下Enter键确认公式,结果将返回第一个符合“销售+关键词+任意后续字符”模式的对应值。
4、如果需要匹配中间包含关键词的记录,可将结构改为“*”&A2&”*”。
二、使用问号(?)匹配单个任意字符
问号(?)专门替代单个位置上的任意字符,适用于固定长度但个别字符不确定的情形,例如规格编码中某一位是可变数字或字母。此方式同样依赖精确匹配模式(第四参数为FALSE),并且不改变原始数据的排序要求。
1、编写公式示例:=VLOOKUP(“A?C??”, Sheet2!A:B, 2, FALSE)。
2、这里的“A?C??”表示一个5位字符串:第一位是A,第二位任意,第三位是C,第四和第五位也任意。
3、若待查字段长度不确定,不能单独使用?,必须与*组合使用,例如“A?C*”。
4、公式中的所有?必须严格对应目标字符串的实际占位数,多一个或少一个都会导致匹配失败。
三、转义通配符本身进行字面匹配
当需要查找的文本本身就包含星号或问号时(例如产品型号中含*),我们必须为通配符加上前导波浪号~进行转义。否则,Excel会将其识别为通配功能而非普通字符。这样可以确保VLOOKUP执行纯字符比对,而不会触发模糊逻辑。
1、输入公式:=VLOOKUP(“ABC~*”, Sheet2!A:B, 2, FALSE)。
2、此处的~*表示字面意义上的星号字符,而非通配含义。
3、同理,查找问号应写作“ABC~?”,查找波浪号本身则写作“ABC~~”。
4、若待查内容来自单元格B2,公式应完善为:=VLOOKUP(SUBSTITUTE(SUBSTITUTE(B2, “*”, “~*”), “?”, “~?”), Sheet2!A:B, 2, FALSE)。
四、结合SEARCH与INDEX-MATCH实现更灵活匹配
VLOOKUP本身不支持正则或复杂的模式匹配,但通过INDEX与MATCH函数嵌套SEARCH函数,可以突破其必须首列查找的限制,轻松实现基于子串存在的判定。此方案无需事先排序,也不依赖通配符语法,能完美适应包含空格、特殊符号的混合文本。
1、输入数组公式:=INDEX(Sheet2!B:B, MATCH(TRUE, ISNUMBER(SEARCH(A2, Sheet2!A:A)), 0))。
2、按Ctrl+Shift+Enter(Windows)或Cmd+Shift+Enter(Mac)完成数组公式录入。
3、其中A2为关键词,Sheet2!A:A为被搜索列,Sheet2!B:B为返回值列。
4、SEARCH函数不区分大小写,如需忽略大小写,可改用FIND函数并配合LOWER函数统一转换。
五、使用FILTER函数(Excel 365 / Excel 2024)批量返回所有匹配项
FILTER函数天然支持布尔数组筛选,配合ISNUMBER和SEARCH能一次性列出所有包含指定关键词的行,彻底摆脱VLOOKUP只能返回单个值的限制。此方法无需辅助列,响应实时,且具备动态数组溢出功能。
1、输入公式:=FILTER(Sheet2!A:B, ISNUMBER(SEARCH(A2, Sheet2!A:A)), “未找到”)。
2、A2是搜索关键词,Sheet2!A:B为源数据区域,第三参数是未匹配时的提示信息。
3、若只需返回B列的结果,可写作:=FILTER(Sheet2!B:B, ISNUMBER(SEARCH(A2, Sheet2!A:A)))。
4、公式结果将自动向下扩展,显示所有符合条件的值,无需手动填充或按数组快捷键。
