dynamic文件名与Excel INDEX()函数

我正在Excel中做一些数据处理工作。 我需要做的是从一个单元格(如D3)从顺序编号的工作簿,如1.xlsx,2.xlsx,3.xlsx …等取值。

我不能使用INDIRECT()函数,因为它需要打开所有的目标文件(这在我的情况下是不可能的)。 所以,我用下面的值使用INDEX()函数:

INDEX([ 1.xlsx ] Sheet1!D:D,1,1)

现在,我想要公式的大胆的部分是根据左列的数字为dynamic的,如下图所示: 在这里输入图像说明 有人请build议解决手头的问题,因为我厌倦了googling 🙂

提前致谢。

也许有人会certificate我错了,但是我不相信有可能在没有资源的情况下产生这样的dynamic引用,除非你对一个像(静态)这样的longhand方法感到满意:

=INDEX(CHOOSE(ROWS($1:1),[1.xlsx]Sheet1!D:D,[2.xlsx]Sheet1!D:D,[3.xlsx]Sheet1!D:D),1,1)

尽pipe这要求在公式中明确input每个工作簿参考。 因此,这也意味着不能通过引用工作表中的任何单元格来创build这些内容,正如您所希望的那样。

或者,如果VBA是一个选项:

 Sub Indexing() Dim i As Long For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row Range("B" & i).Formula = "=INDEX([" & Range("A" & i).Value & ".xlsx]Sheet1!D:D,1,1)" Next i End Sub 

问候