我在Excel中有一个表格,其中的列标题对应于工作簿中其他地方的命名范围的一部分。例如,我有这些列标题:“10”,“20”等,和这些动态命名范围:“ExampleRange10”,“ExampleRange2”等。我想输入一个VLookup公式,通过连接字符串“ExampleRange”和列标题“10”来引用ExampleRange10。这将允许我将公式简单地扩展到表格中的所有列,而不是在每个列的公式中手动输入“ExampleRange10”,“ExampleRange20”等。
我知道INDIRECT函数,并且已经在以前成功地使用过具名范围,但它似乎不能与此情况下的动态命名范围一起使用。我猜想这是Excel如何定义动态命名范围的细微差别(它们不会出现在公式栏左侧的命名范围下拉列表中,在VBA中它们具有一些有趣的属性)。是否有办法在动态命名范围上使用INDIRECT公式,或者有另一种方法来解决这个问题?
编辑:这里是使用的确切公式。 这是主要公式:
我知道INDIRECT函数,并且已经在以前成功地使用过具名范围,但它似乎不能与此情况下的动态命名范围一起使用。我猜想这是Excel如何定义动态命名范围的细微差别(它们不会出现在公式栏左侧的命名范围下拉列表中,在VBA中它们具有一些有趣的属性)。是否有办法在动态命名范围上使用INDIRECT公式,或者有另一种方法来解决这个问题?
编辑:这里是使用的确切公式。 这是主要公式:
= VLOOKUP(B2,INDIRECT(“ ExampleRange”& C1),2,FALSE)
,其中C1包含“10”,而名为“ExampleRange10”的动态命名范围的公式是:= OFFSET(Sheet1!$ F $ 2,0,0,COUNTA(Sheet1!$ F $ 2:$ F $ 25),2)
。主要公式返回“#REF!”但当我删除动态命名范围公式并将“ExampleRange10”仅定义为静态范围时,它可以正确工作。
offset()
和column()
的组合来实现。 - Tim Williams=VLOOKUP(B5,INDIRECT("range"&C1),1,0)
对我来说运行良好。你确定公式的其余部分没有错误,例如第三个参数 - 要返回的范围中的列号? - Peter L."ExampleRange"&C1
以进行进一步的间接引用? - Peter L.INDIRECT
与动态命名范围不兼容...我目前正在研究编写一个VBA自定义函数作为解决方法。请参见链接。 - Kyle Wurtz