使用INDIRECT()通过VLOOKUP()设置动态范围

时间:2014-01-14 17:20:29

标签: excel vlookup formulas excel-indirect

我正在尝试使用INDIRECT()根据定义的数值设置VLOOKUP()函数的范围。当单步执行VLOOKUP()公式时,INDIRECT()函数返回看起来可接受的范围。但是,运行公式时,会返回“#N / A”错误,我不确定原因。

为了给出更多的味道,我使用LEFT()和ADDRESS()来确定基于顶行的单独值的MATCH()的列标题字母。使用固定偏移量,MATCH()函数返回正确的列标题,并提供范围大小的常量。以下是我的公式:

=VLOOKUP(J2,INDIRECT("$"&LEFT(ADDRESS(1,MATCH($H2,ZAS_Lookup,0)+8,4),1+(MATCH($H2,ZAS_Lookup,0)+8>26))&"$1:$"&LEFT(ADDRESS(1,MATCH($H2,ZAS_Lookup,0)+9,4),1+(MATCH($H2,ZAS_Lookup,0)+9>26))&"$29"),2,TRUE)

正如我所提到的,当在最终计算之前单步执行最后一步时,公式看起来好像会浓缩为以下内容:

=VLOOKUP(5,$DW$1:$DX$29,2,TRUE)

但事实并非如此,因为它返回#N / A.知道为什么吗?我是否需要使用其他功能动态设置范围?

1 个答案:

答案 0 :(得分:1)

我意识到我需要命名表所在的选项卡。仅仅设置范围是不够的 - 我还需要告诉Excel表格所在的表格。