Excel中如何用VLOOKUP实现OR逻辑匹配自动填充交易国别代码
Excel自动填充交易国别解决方案
核心公式(支持Excel 365/2021+)
用LET函数简化逻辑,同时实现OR匹配和国别冲突校验:
=LET( input_country, XLOOKUP(B2,$O:$O,$P:$P,""), output_country, XLOOKUP(C2,$O:$O,$P:$P,""), IF(AND(input_country<>"",output_country<>"",input_country<>output_country), "国别冲突", IF(input_country<>"", input_country, output_country) ) )
兼容旧版Excel公式
如果你的Excel不支持LET,可以用嵌套版:
=IF(AND(XLOOKUP(B2,$O:$O,$P:$P,"")<>"",XLOOKUP(C2,$O:$O,$P:$P,"")<>"",XLOOKUP(B2,$O:$O,$P:$P,"")<>XLOOKUP(C2,$O:$O,$P:$P,"")), "国别冲突", IF(XLOOKUP(B2,$O:$O,$P:$P,"")<>"", XLOOKUP(B2,$O:$O,$P:$P,""), XLOOKUP(C2,$O:$O,$P:$P,"")))
适配无XLOOKUP的旧版本
用INDEX+MATCH组合替代,兼容更早的Excel版本:
=IF(AND(IFERROR(INDEX($P:$P,MATCH(B2,$O:$O,0)),"")<>"",IFERROR(INDEX($P:$P,MATCH(C2,$O:$O,0)),"")<>"",IFERROR(INDEX($P:$P,MATCH(B2,$O:$O,0)),"")<>IFERROR(INDEX($P:$P,MATCH(C2,$O:$O,0)),"")), "国别冲突", IF(IFERROR(INDEX($P:$P,MATCH(B2,$O:$O,0)),"")<>"", IFERROR(INDEX($P:$P,MATCH(B2,$O:$O,0)),""), IFERROR(INDEX($P:$P,MATCH(C2,$O:$O,0)),"")))
使用说明
- 把公式中的
B2替换为输入列的实际单元格,C2替换为输出列的实际单元格 $O:$O是账户代码列,$P:$P是对应国别代码列,保持绝对引用(带$)方便下拉填充整列- 逻辑规则:输入/输出列任意一列匹配到账户代码时,自动填充对应国别;若两列匹配到不同国别,返回「国别冲突」提示
内容的提问来源于stack exchange,提问作者Sleepingwhale
相关产品推荐
相关产品推荐

