我正在尝试使用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.知道为什么吗?我是否需要使用其他功能动态设置范围?
答案 0 :(得分:1)
我意识到我需要命名表所在的选项卡。仅仅设置范围是不够的 - 我还需要告诉Excel表格所在的表格。