2

我正在尝试使用 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。知道为什么吗?我是否需要使用不同的函数来动态设置范围?

4

1 回答 1

1

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

于 2014-01-14T17:28:06.763 回答