我需要从一个Excel工作簿动态引用到另一个

时间:2019-04-12 23:48:24

标签: excel vba dynamic reference excel-indirect

我有一本名为“发票”的excel工作簿,其中包含大约35名员工的发票模板。从表面上看,除雇主,薪资水平,姓名等外,所有工作表都是相同的。此工作簿中的每个员工都有不同的工作表。

此外,我每周都会收到大约120名员工的“主时间卡报告”,我必须每周将其作为单独的excel工作簿下载。这些雇员中的每一个都有一个单独的工作表。必须将“主时间卡报告”中的数据传输到“发票”工作簿上的模板。我一直在手动执行此操作,并一直试图在Excel中找出一种方法来动态引用“发票”工作簿中“主时间卡报告”工作簿中的工作表。

问题在于,“主时间卡报告”上的单元格地址会根据许多因素而变化。一个星期,任何特定员工的总工作时间可能在“ T50”单元格中,然后下一周他们可能在“ T43”单元格中(它们从不更改列)。此外,工作表的名称可能会从“ Sheet1”更改为“ Sheet3”,这是因为添加了新员工,或者可能会滚动。

我已经进行了大量研究,但似乎找不到解决方法。

这是我到目前为止使用的公式:

= INDIRECT(“'[[Mastetimecardreports.xlsx] *'!B”&MATCH($ D18,[Mastetimecardreports.xlsx] Sheet1:Sheet129!$ B:$ B,0)+1)

我的目标是在“发票”工作簿中的相应工作表上输入员工的姓名,并在“主时间卡报告”工作簿中找到该姓名,然后从工作表中提取该员工的数据。我想动态地执行此操作,因为单元格地址和工作表将一直在更改。

1 个答案:

答案 0 :(得分:2)

您可能会从数据体系结构重组中受益匪浅。每当我读到类似Each employee has a different sheet within this workbook之类的东西时,我的闹钟都会响起。为什么要这么做?为什么要在多个工作簿中以及在这些工作簿中将数据分散到多个工作表中?这就是您难以汇总数据的原因。使用一个工作簿和一个工作表来存储数据。如果您的数据收集位于不同的文件中,则可以使用Power Query创建一个数据文件。然后,您可以轻松地根据该数据文件创建报告。