Excel 使用索引公式定义子范围时出现的问题

Excel 使用索引公式定义子范围时出现的问题,excel,excel-formula,Excel,Excel Formula,我的理解是,可以使用索引定义范围。示例我可以将MyList的定义名称设置为 =index(A:A,3,1):index(A:A,5,1) 这相当于说A3:A5。然后我可以转过身,使用indexMyList,1,1,我会看到A3的内容。所有这些对我都有用 所以我试图定义一系列工作表名称。我使用定义的名称sheetnames作为: =TRANSPOSE(GET.WORKBOOK(1,Structural!$J$3)&T(NOW())) 我用转置使列表垂直 当我使用: =INDEX(

我的理解是,可以使用索引定义范围。示例我可以将MyList的定义名称设置为

 =index(A:A,3,1):index(A:A,5,1)
这相当于说A3:A5。然后我可以转过身,使用indexMyList,1,1,我会看到A3的内容。所有这些对我都有用

所以我试图定义一系列工作表名称。我使用定义的名称sheetnames作为:

 =TRANSPOSE(GET.WORKBOOK(1,Structural!$J$3)&T(NOW()))
我用转置使列表垂直

当我使用:

 =INDEX(Sheetnames,3,1)
 =INDEX(Sheetnames,6,1)
我在工作簿中分别得到了第三张或第六张工作表的名称。所以这部分是有效的。然而,当我尝试定义一个范围时,就像我使用下面的代码为MyList所做的那样,我得到了一个值

 =INDEX(INDEX(Sheetnames,3,1):INDEX(Sheetnames,6,1),1,1)
问题:

为什么它不起作用

作为获得第一张图纸名称的测试,我还尝试了:

 =OFFSET(Sheetnames,1,1,1,1)
这也产生了同样的错误


我最终要做的是,通过对所有工作表名称(名为Index和Master的工作表除外)进行数据验证,生成一个下拉列表。

根据Excel关于Index的帮助文件

参考表格

描述

返回特定单元格相交处单元格的引用 行和列。如果参考由非相邻选择组成, 您可以选择要查看的内容

语法

索引引用,行数,[列数],[区域数]

索引函数语法具有以下参数

需要参考。对一个或多个单元格范围的引用

等等

因此,为了返回引用,您需要引用一系列单元格。但是,SheetNames并不引用一系列单元格。它引用GET.WORKBOOK,它返回一个值数组。在本例中,它返回一个图纸名称数组

所以用下面的公式

=INDEX(INDEX(Sheetnames,3,1):INDEX(Sheetnames,6,1),1,1)
…假设工作簿名为Book1.xlsx,并且您有Sheet1、Sheet2、Sheet3等,则其计算如下

--> some preliminary evaluations <---

=INDEX("[Book1.xlsx]Sheet3":"[Book1.xlsx]Sheet6",1,1)

=INDEX(#VALUE!,1,1)

=#VALUE!

希望这有帮助

Excel中的GET.工作簿是什么?感谢您抽出时间代表我运行其中的一些内容。我通常会忘记excel中的公式求值选项。有时是一个方便的小装置。我没想到要考虑使用ISRF。很好地指出了我已经忘记的公式。这是否与我不能使用Sheetnames作为数据验证列表的理由相同?
=ISREF(INDEX(Sheetnames,3,1))