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

Excel如何通过双条件跨表匹配查找对应产品价格

双条件跨表匹配填充价格实现方案

以下方案默认按通用表结构约定,你可以根据自己的实际列位置、表名调整引用:

  • 待填充价格表(以下简称表1):匹配条件列为品牌/客户名、产品名,价格列为空,数据从第2行开始(第1行为表头)
  • 价格源数据表(以下简称表2):包含品牌/客户名列、产品名列、对应价格列,有效数据范围为第2行到第1000行
    如果你的匹配维度是客户名称+产品名,只需要把公式里对应品牌列的引用替换为客户名列即可,匹配逻辑完全一致

方案1:修正后的SUMPRODUCT写法

SUMPRODUCT匹配失败通常是三个原因:未将逻辑判断结果转为数值、文本字段存在隐形空格、引用源数据时未加绝对引用导致下拉范围偏移。
在表1价格列的首个数据单元格(以C2为例)输入以下公式,回车后下拉填充整列即可:

=SUMPRODUCT(--(表2!$A$2:$A$1000=A2),--(表2!$B$2:$B$1000=B2),表2!$C$2:$C$1000)

注意:该公式会对同品牌+同产品的多条价格记录做求和计算,如果源表中同一组匹配条件对应唯一价格/你需要取所有对应价格的合计值可以用这个方案;如果同一组条件有多条记录且你需要取第一条匹配的价格,建议用后面两种方案。
如果匹配结果返回0,优先检查两个表的条件列文本是否存在前后空格、不可见特殊字符,可以嵌套TRIM()函数做清洗,修改后公式为:

=SUMPRODUCT(--(TRIM(表2!$A$2:$A$1000)=TRIM(A2)),--(TRIM(表2!$B$2:$B$1000)=TRIM(B2)),表2!$C$2:$C$1000)

方案2:XLOOKUP双条件匹配(适用于Excel 365/2021及以上版本)

该写法运算效率高于SUMPRODUCT,默认返回第一条匹配到的价格,不会出现多值求和问题,还可以自定义匹配失败时的返回值。表1 C2单元格公式:

=XLOOKUP(1,(表2!$A$2:$A$1000=A2)*(表2!$B$2:$B$1000=B2),表2!$C$2:$C$1000,"无匹配价格")

公式最后一个参数为匹配失败时的提示内容,你可以根据需求替换为空值""或者其他文本。

方案3:INDEX+MATCH组合匹配(全Excel版本通用)

低版本Excel不支持XLOOKUP时可以用这个组合,兼容性最强,同样默认返回第一条匹配结果。表1 C2单元格输入公式后,按Ctrl+Shift+Enter三键结束数组公式录入(Excel 365版本直接回车即可),再下拉填充整列:

=INDEX(表2!$C$2:$C$1000,MATCH(1,(表2!$A$2:$A$1000=A2)*(表2!$B$2:$B$1000=B2),0))

如果需要屏蔽匹配不到时的#N/A报错,可以外层嵌套IFERROR函数:

=IFERROR(INDEX(表2!$C$2:$C$1000,MATCH(1,(表2!$A$2:$A$1000=A2)*(表2!$B$2:$B$1000=B2),0)),"")

匹配失败通用排查步骤

  1. 复制表1中匹配失败的条件值,到表2中用Ctrl+F搜索,先确认源表中确实存在对应匹配记录
  2. 用=LEN(单元格)公式分别核对两个表中相同内容单元格的字符长度,长度不一致说明存在隐形空格、换行符等特殊字符,用TRIM()+CLEAN()函数清洗两表的条件列后再匹配
  3. 检查公式中引用表2的范围是否加了$绝对引用符号,避免下拉公式时引用范围偏移漏数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:24:39