Excel VLOOKUP增量

时间:2018-12-18 18:20:02

标签: excel increment vlookup

我正在创建一个excel文件,它将每天从其他驱动器上的文件夹中提取每日报告。我想知道是否有一种方法可以轻松地将公式中的文件名增加1?

我当前使用的公式是:

=VLOOKUP("Oil Production(Sm³)",'G:\DPNA\Non_Op_Assets\Hib\Pe\Production\Reports\Daily Report\2019\01 Jan19\[190113 Daily Report.xls]Daily Report'!$A$1:$P$500,3,FALSE)*1

我在想,是否有可能让190113轻松地为接下来的365个细胞增加一个。

2 个答案:

答案 0 :(得分:1)

不容易。在我看来,您不仅需要增加190113,而且还需要在2月1日切换到190201,并且文件路径中还标出了年和月。

这可以用公式来构造。您可以创建自动生成路径和文件名位的公式。

="Daily Report\"&YEAR(A2)&"\"&TEXT(A2,"dd MMMyy")&"\["&TEXT(A2,"yymmdd")&" Daily Report.xls]Daily Report'!$A$1:$P$500,3,FALSE)*1"

enter image description here

下一个问题是如何使用它。您可以将其插入Indirect函数中,但是如果Indirect引用了外部文件,则必须打开该文件才能使Indirect起作用。达不到目的。

因此,另一种选择是将完整的公式构建为文本字符串

="=VLOOKUP(""Oil Production(Sm³)"",'G:\DPNA\Non_Op_Assets\Hib\Pe\Production\Daily Report\"&YEAR(A2)&"\"&TEXT(A2,"dd MMMyy")&"\["&TEXT(A2,"yymmdd")&" Daily Report.xls]Daily Report'!$A$1:$P$500,3,FALSE)*1"

然后将公式复制并粘贴为值,然后编辑每个粘贴的单元格并确认它现在包含的公式。

编辑:VBA是进行批量编辑的方法,但是您将无法记录此内容,因为需要循环。

答案 1 :(得分:0)

将打开文件吗?如果可以,那么您可以使用web,我为您准备了一个基本示例:

indirect

我可以将其向下拖动,文件名中的=INDIRECT("'C:\Reporting Archive\[Daily Sales and Orders Report - 2018121" & ROW(A1)+5 & ".xlsx]Summary - Volume'!$C$41")将以6开头,然后递增到7然后是8。

如果您没有打开文件,则需要使用VBA。从关闭的工作簿中读取而不打开它时,我总是使用ExecuteExcel4Macro方法,如下所示:

2018121