Excel跨表公式需求:根据产品编码匹配横向列表对应价格
跨Sheet提取匹配价格解决方案
嘿,我来帮你搞定这个从Sheet1横向提取价格到Sheet2纵向的问题!
你的需求很明确:要在Sheet2里,根据纵向排列的产品编码(对应Sheet1中每个价格左侧的两列编码),自动匹配并返回Sheet1里对应的价格。结合你的表格结构,我给你两种实用的公式方案:
方案1:用XLOOKUP(简洁高效,适合Excel 365/2021及以上)
在Sheet2的C2单元格输入下面的公式,然后下拉填充就能批量匹配了:
=XLOOKUP(A2&B2, Sheet1!$B:$B&Sheet1!$C:$C, Sheet1!$E:$E, "未找到")
公式说明:
A2&B2:把Sheet2中当前行的两个编码合并成一个唯一的匹配标识,避免单编码重复的问题Sheet1!$B:$B&Sheet1!$C:$C:对应Sheet1里每组编码的合并结果,用来精准定位匹配项Sheet1!$E:$E:这是Sheet1中价格所在的列(一定要根据你实际表格调整这个列范围,比如价格在J列就改成Sheet1!$J:$J)"未找到":如果没有匹配到对应编码,会显示这个提示,你也可以改成空值""
方案2:用INDEX+MATCH(兼容所有Excel版本)
如果你用的是旧版Excel,不支持XLOOKUP,就用这个数组公式(输入完成后按Ctrl+Shift+Enter确认,新版Excel直接回车即可):
=INDEX(Sheet1!$E:$E, MATCH(1, (Sheet1!$B:$B=A2)*(Sheet1!$C:$C=B2), 0))
公式说明:
(Sheet1!$B:$B=A2)*(Sheet1!$C:$C=B2):生成一个判断数组,只有当Sheet1的B列等于Sheet2的A2、且C列等于Sheet2的B2时,对应位置才会返回1,其余为0MATCH(1, ..., 0):找到数组中第一个1的位置,也就是匹配到的目标行号INDEX(Sheet1!$E:$E, ...):根据找到的行号,提取Sheet1中对应行的价格
重要提示
一定要根据你实际的表格列位置调整公式里的列引用!比如如果Sheet1的编码在D、E列,价格在G列,就把公式里的Sheet1!$B:$B改成Sheet1!$D:$D,Sheet1!$C:$C改成Sheet1!$E:$E,Sheet1!$E:$E改成Sheet1!$G:$G。
内容的提问来源于stack exchange,提问作者luke
相关产品推荐
相关产品推荐

