【问题标题】:Excel file name variable reference from cell单元格中的 Excel 文件名变量引用
【发布时间】:2018-07-06 10:58:15
【问题描述】:

我有一个 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)

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

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

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

    我不是 100% 确定您想如何组合 GETPIVOTDATA - 我认为您可以将 GETPIVOTDATA 调用放在 INDIRECT 调用中,但必须小心转义“...”。

    【讨论】:

      【解决方案2】:

      这已通过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
      

      【讨论】:

        猜你喜欢
        • 2017-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多