取上月期末数---EXCEL-VBA-公式-函数应用
1、6月份的结存数,在7月份中为期初数,思路如下:通过VLOOKUP公式来查找上月份对应产品的期末数,公式在每个表中都要适用,所以引用的区域是要动态的,不需要每次修改公式,所以我们得观察表格设置及维护的特点。本人觉得接下来的步骤才是分享的主要经验:

2、通过观察,每张工作表都是数字+月份的特色,我们通过Indirect公式来构建一个VLOOKUP查找区域的动态区域,如‘6月'!A1:M100,在七月的库存表就要引用六月的期末数,我们要取到“6月”,可以通过取7月的表名减1来实现,接下来是如何取到表名呢?

4、=FIND("]",CELL("FILENAME",A1))查找”]"公式结果查到了,在41字符处,找到位置后,我们要表名取出来,使用MID函数可以达到这个目的

6、图5,取月份有多种方法,本例,采用SUBSTITUTE函数,将月份替换为空值“”,这样就得到7,然后减去1,就可以得到6了,我们这么辛苦将6取出来,就是为了在INDIRECT函数中使用它,构建一个动态的引用区域供VLOOKUP使用。请看下一步:

8、图7我们可以看到,使用了VLOOKUP公式,查找区域,就是红色边框的部分,用INDIRECT生成的区域,为了不去数到底在第几列,我采用了COLUMN(K5)来代替,COLUMN()会产生所在单元格的列号,本例K5是我们的目标列号
