我如何让我的公式总是参考最后一张?
我目前在我的Excel文件中有2个工作表。
第一个工作表称为“摘要”页面,显示第二个工作表的摘要结果。
第二张纸被称为原始数据。 一个例子是一个名为水果的列。
Apple Apple Apple Banana Banana Pear
在第一张纸上,我会有一个公式来计算各个果实出现的时间,结果将显示在不同的单元格中。
=COUNTIF(Fruits!A2:A7,"Apple") =COUNTIF(Fruits!A2:A7,"Banana")
我想要做的是,是否可以对公式进行编程,以便每次添加一张新的原始数据(第三张)时,第一张纸上的统计数据就可以引用最新的纸张来获取信息。
(假定数据的定位和全部与第二张相同)
到目前为止,我所做的是提供一个函数GETLASTWSNAME()
,它能够始终检索最后一个工作表的名称。 但对于我来说,将函数embedded到countif公式本身似乎是不可能的。
=COUNTIF((GETLASTWSNAME())!A2:A7,"Apple)
上面的公式是我想要我的公式工作,但可悲的是,Excel不允许我这样做。
任何意见将不胜感激。 谢谢!
=COUNTIF(INDIRECT(GETLASTWSNAME() & "!A2:A7"),"Apple")
如果您愿意,可以使用XLM / Range Name解决方法,而不是VBA
- 定义范围名称,wshNames来保存表格数组的名称
=RIGHT(GET.WORKBOOK(1),LEN(GET.WORKBOOK(1))-FIND("]",GET.WORKBOOK(1)))
使用大卫·海格的技术 - 使用此Excel公式从表格数组中提取最后一个工作表名称
=INDEX(wshNames,COUNTA(wshNames)+RAND()*0)
这个公式说,看所有的表,然后返回最后(使用COUNTA)。 RAND()*0)
部分确保公式是易失性的,并在Excel中更新
如果你使用VBA,你将需要确保你的GETLASTWSNAME
函数是不稳定的,也就是说,当更改发生时它会被更新。