多条件查找订单状态:VLOOKUP/XLOOKUP/INDEX&MATCH选哪款?
多条件匹配获取订单状态
Sheet1 订单表
注意同一Ref ID(如DEF456)对应多个订单号:
| Ref ID | Order Number |
|---|---|
| ABC123 | ORD001 |
| DEF456 | ORD002 |
| GHI789 | ORD003 |
| DEF456 | ORD004 |
| DEF456 | ORD005 |
Sheet2 订单状态表
| Ref ID | Order Number | Status |
|---|---|---|
| ABC123 | ORD001 | success |
| DEF456 | ORD002 | success |
| GHI789 | ORD003 | fail |
| DEF456 | ORD004 | success |
| DEF456 | ORD005 | fail |
需求
为Sheet1的每个订单返回对应的Status字段。
问题
当Ref ID与Order Number为独立列时,无法直接用单条件查找公式完成匹配。
尝试过的无效公式
=VLOOKUP(CONCATENATE(A2,B2),Sheet2!,3,0)=VLOOKUP(JOIN("",A2,b2),Sheet2!,3,0)=XLOOKUP(AND(CONCATENATE(A2,B2),Sheet2!A2:A=A2:A,Sheet2!B2:B=B2:B),Sheet2!C2:C)=INDEX(Sheet2!A2:C,MATCH(JOIN("",A2,B2),AND({Sheet2!A2:A}=A2,{Sheet2!B2:B}=B2),0),MATCH(JOIN("",A2,B2),Sheet2!1:1,0))
可行解决方案
方案1:INDEX+MATCH多条件数组匹配
在Sheet1的C2单元格输入以下公式,下拉填充至所有行:
=INDEX(Sheet2!$C$2:$C$6,MATCH(1,(Sheet2!$A$2:$A$6=A2)*(Sheet2!$B$2:$B$6=B2),0))
- 旧版Excel需按
Ctrl+Shift+Enter触发数组计算;新版Excel无需手动触发,输入后回车即可。
方案2:XLOOKUP多条件匹配(仅新版Excel支持)
直接用XLOOKUP的多条件逻辑,在Sheet1的C2单元格输入:
=XLOOKUP(1,(Sheet2!$A$2:$A$6=A2)*(Sheet2!$B$2:$B$6=B2),Sheet2!$C$2:$C$6)
方案3:辅助列合并匹配键
- 在Sheet2新增D列,D2单元格输入
=A2&B2,下拉填充生成合并后的匹配键; - 在Sheet1的C2单元格使用VLOOKUP:
=VLOOKUP(A2&B2,Sheet2!$D$2:$E$6,2,0)
内容的提问来源于stack exchange,提问作者bilal mosbah
相关产品推荐
相关产品推荐

