Excel多列INDEX/MATCH匹配需求:输入竞品代码自动生成我方代码
解决Excel多列竞品代码匹配我方代码的问题
你已经搞定了单列匹配的基础逻辑,现在要扩展到多列匹配的场景其实很简单,我给你分两种实用方案,适配不同的Excel版本:
方案1:兼容所有Excel版本(INDEX+MATCH+数组判断)
如果你的Excel版本偏旧(比如2019及更早),可以用这个数组公式实现多列查找——注意旧版本需要按 Ctrl+Shift+Enter 完成输入:
=INDEX('我方商品'!C:C,MATCH(TRUE,('我方商品'!E:E=K2)+('我方商品'!F:F=K2)+('我方商品'!G:G=K2)>0,0))
公式拆解:
('我方商品'!E:E=K2)+('我方商品'!F:F=K2)+('我方商品'!G:G=K2):遍历你指定的所有竞品代码列,找到和K2匹配的单元格就返回1,否则0;只要某一行有匹配,相加结果就≥1MATCH(TRUE,...>0,0):定位到第一个存在匹配项的行号INDEX('我方商品'!C:C,行号):返回对应行的我方代码
如果竞品代码列不连续,直接把列范围加到括号里就行,比如('我方商品'!E:E=K2)+('我方商品'!H:H=K2)。
方案2:Excel 365/2021及以上版本(XLOOKUP快速实现)
如果用的是新版Excel,XLOOKUP函数直接支持多区域查找,公式更简洁直观:
=XLOOKUP(K2,'我方商品'!E:G,'我方商品'!C:C,"无匹配结果")
公式说明:
K2:你手动输入的竞品代码'我方商品'!E:G:存储竞品代码的多列范围(不连续列可以写成{'我方商品'!E:E,'我方商品'!F:F,'我方商品'!G:G})'我方商品'!C:C:要返回的我方代码列"无匹配结果":找不到对应代码时的提示文本,可按需修改
小提示:
- 两个方案都会返回第一个匹配的我方代码,如果存在重复匹配项,建议先整理数据避免冲突
- 尽量用实际数据范围(比如
C2:C1000)代替整列引用(C:C),能提升公式运行速度
内容的提问来源于stack exchange,提问作者Sam Kay
相关产品推荐
相关产品推荐

