来自单元格的Excel文件名变量引用

时间:2018-07-06 10:58:16

标签: excel excel-formula

我有一个Excel公式,该公式使用GETPIVOTDATA从另一个文件透视图中获取值。

该公式在其他4个文件中引用了5个位置,每个月都会更新一次,并将它们总计到主文件中。

我已打开文件以执行此操作。

我遇到的问题是,我必须每月手动更新公式中的文件名,以使它们查看最新文件。

我必须手动更新的当前公式:

=GETPIVOTDATA("Add YTD ",'[FileA P6 2018.xlsm]Monthly report'!$A$5)
+GETPIVOTDATA("Add YTD ",'[FileA P6 2018.xlsm]Monthly sub report'!$A$39)
+GETPIVOTDATA("Add YTD ",'[FileB P6 2018.xlsm]Monthly pivot'!$A$3)
+GETPIVOTDATA("Add YTD ",'[FileC P6 2018.xlsm]Monthly report'!$A$5)
+GETPIVOTDATA("Add YTD ",'[FileD P6 2018.xlsm]Monthly pivot'!$A$3)

下个月,文件名将P6更改为P7

我有两个要在变量中使用的值的单元格:

B4 = 6
B5 = 2018

我尝试了以下操作均无济于事:

=GETPIVOTDATA("Add YTD ",'[FileA P$B$4 $B$5.xlsm]Monthly report'!$A$5)
+GETPIVOTDATA("Add YTD ",'[FileA P$B$4 $B$5.xlsm]Monthly sub report'!$A$39)
+GETPIVOTDATA("Add YTD ",'[FileB P$B$4 $B$5.xlsm]Monthly pivot'!$A$3)
+GETPIVOTDATA("Add YTD ",'[FileC P$B$4 $B$5.xlsm]Monthly report'!$A$5)
+GETPIVOTDATA("Add YTD ",'[FileD P$B$4 $B$5.xlsm]Monthly pivot'!$A$3)

2 个答案:

答案 0 :(得分:1)

我认为您将需要INDIRECT公式,该公式使您能够使用变量来建立引用。例如,下面的内容使您可以访问工作簿中的单元格E12

=INDIRECT("[FileA"&B4&B5&".xlsm]Sheet1!$E$12")

我不是100%不确定要如何结合使用GETPIVOTDATA-我认为您可以将GETPIVOTDATA调用放在INDIRECT调用中,但是在转义“ ... ...

时必须小心

答案 1 :(得分:0)

这已通过VBA解决,并同时设置了单元格B4B5

B4 = P5 2017
B5 = P6 2018

VBA:

Sub FileNameUpdate()
    Cells.Replace What:=Range("B4") & ".xlsm", Replacement:=Range("B5") & ".xlsm", _
                  LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
                  SearchFormat:=False, ReplaceFormat:=False
End Sub