Excel多品牌多数值区间匹配返回值公式求助
多条件品牌+区间匹配的Excel公式解决方案
针对你需要匹配指定品牌、同时匹配数值区间并返回对应值的需求,以下几种方案可以替代嵌套IF,适配38个区间的场景:
方案一:辅助表法(最易维护,推荐)
这种方法适合区间数量多的场景,后续修改区间也方便:
- 新建辅助表(比如放在F:H列):
- F列:填写对应品牌(每个品牌重复对应所有区间)
- G列:填写每个区间的下限值(如1、11、21...)
- H列:填写每个区间的上限值(如10、20、30...)
- I列:填写对应匹配成功后要返回的D列值
- 在目标单元格输入公式:
=INDEX(I:I,MATCH(1,(B2=F:F)*(C2>=G:G)*(C2<=H:H),0))- 注意:Excel 2019及以前版本需要按
Ctrl+Shift+Enter触发数组计算,365/2021版本直接回车即可。
- 注意:Excel 2019及以前版本需要按
方案二:XLOOKUP数组公式(无需辅助表,适合新版本)
如果你的Excel是365或2021版本,支持XLOOKUP函数,可以直接用数组条件匹配:
- 先把所有区间的下限、上限、对应品牌、返回值整理成数组(或定义名称简化公式)
- 公式示例(假设品牌列表为
$B$2:$B$100,下限列表$G$2:$G$39,上限列表$H$2:$H$39,返回值列表$D$2:$D$100):=XLOOKUP(1,(B2=品牌列表)*(C2>=下限列表)*(C2<=上限列表),返回值列表,"无匹配")- 也可以直接把数组写在公式里,比如:
=XLOOKUP(1,(B2={"Nike","Nike",..."adidas","adidas",...})*(C2>={1,11,...})*(C2<={10,20,...}),返回值数组,"无匹配")
- 也可以直接把数组写在公式里,比如:
方案三:固定步长区间的简化公式(如果区间是等步长)
如果你的区间是固定步长(比如每10个数值一组:1-10、11-20...),可以用数值分组替代区间判断:
- 先用
INT((C2-1)/10)把C列数值转换成分组编号(比如9→0,15→1,对应1-10、11-20组) - 辅助表中G列填写分组编号,其他列同方案一,公式改为:
=INDEX(I:I,MATCH(1,(B2=F:F)*(INT((C2-1)/10)=G:G),0))
内容的提问来源于stack exchange,提问作者user13976883
相关产品推荐
相关产品推荐

