Excel跨工作表匹配New code返回对应Old code的实现方法
Excel新旧SKU批量匹配方案
需求说明
- Sheet2:存储数千条旧SKU(Old code)与新SKU(New code)的对应关系
- Sheet1:包含数百条产品数据,已新增
Old code列,需根据New code匹配Sheet2对应的旧SKU
初始数据结构
Sheet1初始状态
| Old code | New code | Description | Cost |
|---|---|---|---|
| formula? | 56789 | Product 1 | £200 |
| formula? | 10111 | Product 2 | £150 |
| formula? | 21314 | Product 3 | £99 |
Sheet2数据结构
| Old code | New code |
|---|---|
| abcde | 56789 |
| fghij | 35462 |
| klmno | 10111 |
| pqrst | 43433 |
| uvwxy | 21314 |
解决方案
推荐以下3种高效批量匹配公式,输入第一个单元格后下拉填充即可完成所有数据匹配:
1. XLOOKUP(Excel 365/2021+ 首选)
在Sheet1的A2单元格输入:
=XLOOKUP(B2, Sheet2!$B:$B, Sheet2!$A:$A, "无匹配")
B2:当前行的新SKUSheet2!$B:$B:Sheet2的新SKU列(绝对引用避免下拉偏移)Sheet2!$A:$A:要返回的旧SKU列"无匹配":无匹配时显示内容,可自定义修改
2. VLOOKUP(兼容全版本)
在Sheet1的A2单元格输入:
=VLOOKUP(B2, Sheet2!$B:$A, 2, FALSE)
- 注意:VLOOKUP要求查找值(新SKU)在查找区域的第一列,因此这里用
Sheet2!$B:$A调换了列顺序 FALSE:强制精确匹配,必须设置
3. INDEX+MATCH(灵活高效)
在Sheet1的A2单元格输入:
=INDEX(Sheet2!$A:$A, MATCH(B2, Sheet2!$B:$B, 0))
MATCH:定位Sheet2中匹配新SKU的行号INDEX:根据行号提取对应的旧SKU
预期结果
| Old code | New code | Description | Cost |
|---|---|---|---|
| abcde | 56789 | Product 1 | £200 |
| klmno | 10111 | Product 2 | £150 |
| uvwxy | 21314 | Product 3 | £99 |
内容的提问来源于stack exchange,提问作者Tom Davison
相关产品推荐
相关产品推荐

