我正在Excel中进行一些数据处理工作。我需要做的是从顺序编号的工作簿中获取Cell(Say D3)中的值,如1.xlsx,2.xlsx,3.xlsx ......等等。
我无法使用INDIRECT()函数,因为它需要打开所有目标文件(在我的情况下这是不可能的)。因此,我使用INDEX()函数,其值如下:
INDEX([ 1.xlsx ] Sheet1!D:D,1,1)
现在,我想根据左栏上的数字将公式的粗体部分变为动态,如下图所示: 有人请建议解决手头的问题,因为我已经厌倦了谷歌搜索:)
提前致谢。
答案 0 :(得分:0)
也许有人会证明我错了,但我不相信有可能在没有资源的情况下生成这样的动态引用,除非你对一个简单的(和静态)方法感到满意,例如:
=INDEX(CHOOSE(ROWS($1:1),[1.xlsx]Sheet1!D:D,[2.xlsx]Sheet1!D:D,[3.xlsx]Sheet1!D:D),1,1)
虽然这要求在公式中明确输入每个工作簿引用。因此,这也意味着无法通过引用工作表中的任何单元格来创建这些内容,正如您可能希望的那样。
或者,如果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
此致