You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中为重复产品从Sheet2匹配对应Productid至Sheet1?

Excel重复产品名称匹配Productid解决方案

先分析你VLOOKUP出错的原因

  1. 参数逻辑错误:VLOOKUP要求查找值必须在查找区域的第一列,且第三个参数是返回列在该区域的索引(不是0)。你当前公式用Sheet2!A:C作为查找区域(首列是Productid),但要匹配的是Product Name(B2),根本找不到对应项,所以出现#N/A。
  2. 重复值限制:即使修正参数,VLOOKUP只会返回第一个匹配的Productid,无法处理Sheet2中同一Product Name对应多个不同Productid的情况。

方案1:基础匹配(Sheet2中Product Name唯一)

如果Sheet2里每个Product Name只对应一个Productid,用INDEX+MATCH直接反向查找(避开VLOOKUP只能从左到右的限制):
=INDEX(Sheet2!A:A,MATCH(B2,Sheet2!B:B,0))

  • 说明:MATCH找到Sheet2中Product Name等于B2的位置,INDEX返回对应位置的Productid。

方案2:重复Product Name精准匹配(顺序对应)

如果Sheet2和Sheet1中都有重复的Product Name,且需要按出现顺序对应匹配(比如Sheet1第2个"牛奶"对应Sheet2第2个"牛奶"的Productid),用数组公式:
=INDEX(Sheet2!A:A,MATCH(1,(Sheet2!B:B=B2)*(COUNTIF($B$2:B2,B2)=COUNTIF(Sheet2!B$2:Sheet2!B2,B2)),0))

  • 操作提示:旧版Excel输入后需按Ctrl+Shift+Enter确认,新版Excel自动识别动态数组。

方案3:Excel 365/2021简化版

用XLOOKUP直接实现反向+精确匹配,语法更直观:
=XLOOKUP(B2,Sheet2!B:B,Sheet2!A:A,"",0)

  • 若要处理重复项顺序匹配,公式调整为:
    =XLOOKUP(1,(Sheet2!B:B=B2)*(COUNTIF(Sheet2!B$2:Sheet2!B2,B2)=COUNTIF($B$2:B2,B2)),Sheet2!A:A,"",0)

内容的提问来源于stack exchange,提问作者s_max

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 22:31:15