如何用Excel公式实现双匹配字段的同行单元格动态取值?
双条件匹配自动更新价格的公式实现方法
当然可以用公式实现,以下两种方案都能解决你的问题:
方案一:INDEX+MATCH多条件组合(兼容多数Excel版本)
假设你的数据源区域是:商品列(A2:A100)、颜色列(B2:B100)、价格列(C2:C100);需要输入商品的单元格是E2,输入颜色的单元格是F2,要自动显示价格的单元格是G2。
在G2中输入以下公式:=INDEX($C$2:$C$100, MATCH(1, ($A$2:$A$100=E2)*($B$2:$B$100=F2), 0))
注意:如果是旧版Excel(2019及以前),输入完公式后需要按 Ctrl+Shift+Enter 触发数组计算;新版Excel直接回车即可。
原理:($A$2:$A$100=E2)*($B$2:$B$100=F2) 会生成一个由0和1组成的数组,只有当商品和颜色同时匹配时才会返回1;MATCH找到第一个1的位置,INDEX就会返回对应行的价格。
方案二:XLOOKUP函数(适用于Excel 365/2021及以上版本)
如果你的Excel版本支持XLOOKUP,公式会更简洁:=XLOOKUP(E2&F2, $A$2:$A$100&$B$2:$B$100, $C$2:$C$100)
原理:把商品和颜色拼接成一个唯一的匹配字符串,数据源中也对应拼接商品+颜色,XLOOKUP直接匹配并返回对应的价格,无需数组操作,使用起来更直观。
注意事项
- 确保数据源中商品+颜色的组合是唯一的,否则公式会返回第一个匹配到的价格;如果有重复组合,可根据需求添加额外条件(比如取最新价格、最高价格等)。
内容的提问来源于stack exchange,提问作者user1865027
相关产品推荐
相关产品推荐

