【发布时间】:2013-01-29 04:42:22
【问题描述】:
我在 Excel 中有一个表格,其列标题对应于我工作簿中其他地方的动态命名范围的一部分。例如,我有这些列标题:“10”、“20”等,以及这些动态命名范围:“ExampleRange10”、“ExampleRange2”等。我想通过连接输入引用 ExampleRange10 的 VLookup 公式字符串“ExampleRange”和列标题“10”。这将允许我简单地将公式扩展到表中的所有列,而不是在每列的公式中手动键入“ExampleRange10”、“ExampleRange20”等。
我知道 INDIRECT 函数,并且过去曾成功地将它用于命名范围,但在这种情况下,它似乎不适用于 dynamic 命名范围。我猜这是一个细微差别,与 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() 的某种组合,具体取决于您的确切布局。 -
@KyleWurtz
=VLOOKUP(B5,INDIRECT("range"&C1),1,0)在 Excel 2007 中对我来说很好用。你确定公式的其余部分没有错误,例如第三个参数 - 要返回的范围内的列号? -
@PeterL。嗯。你的“range10”是动态的吗?我仔细检查了我的公式和范围,但找不到任何错误。当我转到名称管理器并单击“引用”框时,动态范围和静态范围都突出显示同一区域,所以我认为问题不在于动态范围的 OFFSET 公式......并且正如我之前提到的,当我将静态范围文本的开头替换为动态范围的开头文本“ExampleRange”时,完全相同的 VLOOKUP 公式有效,因此 VLOOKUP 公式似乎也有效......跨度>
-
@KyleWurtz 你是对的 - 双动力确实不起作用......也许你获得
"ExampleRange"&C1的中间单元以进一步间接是一种选择?
标签: excel dynamic excel-formula named-ranges