如何用VLOOKUP匹配表格区域子集,提取产品名称中的对应公司名
从产品名称中匹配母公司名称并前置的Excel实现方案
核心需求
从产品全称(如apple macbook)中匹配出对应的母公司名称(如apple),并将该公司名置于产品全称前方。假设两个工作表结构:
- Sheet1(母公司表):A列存储所有母公司名称(无重复)
- Sheet2(产品表):A列存储带公司名的产品全称
方法1:数组公式提取公司名(兼容所有Excel版本)
在Sheet2的B2单元格输入以下公式,下拉填充:
=INDEX(Sheet1!A:A,MATCH(TRUE,ISNUMBER(SEARCH(Sheet1!A:A,A2)),0))
注意:旧版Excel(2019及以前)需按
Ctrl+Shift+Enter触发数组计算,新版Excel直接回车即可。
公式说明
SEARCH(Sheet1!A:A,A2):检查每个母公司名是否出现在当前产品全称中,返回位置或错误值ISNUMBER(...):将位置值转为布尔值TRUE,错误值转为FALSEMATCH(TRUE,...):找到第一个TRUE的位置,对应Sheet1中的母公司名INDEX(...):根据位置提取对应的母公司名称
方法2:XLOOKUP简化提取(Office 365/Excel 2021及以上)
如果使用新版本Excel,可改用更简洁的XLOOKUP:
=XLOOKUP(TRUE,ISNUMBER(SEARCH(Sheet1!A:A,A2)),Sheet1!A:A,"未找到")
无需数组按键,直接回车即可,还能自定义无匹配时的提示文本。
方法3:精确匹配前缀(避免误匹配)
如果需要确保母公司名是产品全称的开头前缀(比如避免把pineapple误判为apple),改用LEFT函数判断:
=INDEX(Sheet1!A:A,MATCH(LEFT(A2,LEN(Sheet1!A:A)),Sheet1!A:A,0))
同样,旧版Excel需按
Ctrl+Shift+Enter。
将公司名前置到产品列
提取到公司名后,在Sheet2的C列生成合并内容(可根据需求调整分隔符):
=B2&" | "&A2
示例结果:apple | apple macbook
为什么之前的FIND/MATCH组合失败?
- FIND区分大小写,而产品名中的公司名可能大小写不一致(如
Applevsapple),建议改用不区分大小写的SEARCH - 未结合数组判断,无法批量检查所有母公司名是否匹配当前产品
内容的提问来源于stack exchange,提问作者Bishal
相关产品推荐
相关产品推荐

