如何让VLOOKUP匹配列与MATCH引用数组实现同列联动?
解决方案
核心是让MATCH的查找区域与VLOOKUP的目标列联动,通过动态引用列区域实现,推荐使用INDEX函数(非易失性函数,性能更稳定),修改后的公式如下:
=INDEX(table1,MATCH(VLOOKUP($B$17,Mold!$B$5:$AZ$181,C$8+1,FALSE),INDEX(Mold!$5:$181,17,C$8+1):INDEX(Mold!$5:$181,116,C$8+1),0),2)
关键修改说明
原公式中固定的Mold!C17:C116被替换为动态区域:
INDEX(Mold!$5:$181,17,C$8+1):定位到Mold工作表中第17行、C$8+1对应列的单元格INDEX(Mold!$5:$181,116,C$8+1):定位到Mold工作表中第116行、C$8+1对应列的单元格- 两者组合后,自动生成对应列的
17:116行区域,完全跟随C$8+1的列号变化,拖动公式或切换下拉列表时都能保持联动
备选方案(使用INDIRECT,适合列号≤26的场景)
如果目标列不超过Z列,也可以用INDIRECT实现,但它是易失性函数,大量使用会影响表格性能:
=INDEX(table1,MATCH(VLOOKUP($B$17,Mold!$B$5:$AZ$181,C$8+1,FALSE),INDIRECT("Mold!"&CHAR(64+C$8+1)&"17:"&CHAR(64+C$8+1)&"116"),0),2)
内容的提问来源于stack exchange,提问作者ArturoC
相关产品推荐
相关产品推荐

