2012-04-29 109 views
8

我目前在我的excel文件中有2個工作表。如何讓公式始終引用最後一張表格?

第一個工作表被稱爲「摘要」頁面,該頁面顯示第二個工作表的摘要結果。

第二張紙被稱爲原始數據。一個例子是名爲水果的列。

Apple 
Apple 
Apple 
Banana 
Banana 
Pear 

在第一片材,我將具有計數各自水果出現的時間的數,結果將顯示在不同細胞的公式。

=COUNTIF(Fruits!A2:A7,"Apple") 
=COUNTIF(Fruits!A2:A7,"Banana") 

我想要做的是,有可能是我的公式進行編程,使得每次我添加原始數據的新工作表(3片),在第一層上的統計數據能夠參考最新的表格來獲取信息。

(假設數據的定位和都是一樣的第二頁​​。)

我所做的,到目前爲止是拿出一個功能GETLASTWSNAME()這是能夠始終檢索的名稱最後的工作表。但對於我來說,將函數嵌入countif公式本身似乎是不可能的。

=COUNTIF((GETLASTWSNAME())!A2:A7,"Apple) 

上面的公式是我希望我的公式工作,但可悲的是excel不允許我這樣做。

任何意見,將不勝感激。謝謝!

+0

你能說出最後一張紙「實際」,並改名爲「四五」當你創建一個新的實際表? – Aprillion 2012-04-29 10:36:37

+1

對不起。我不明白你的意思? – Thomas 2012-04-29 12:04:29

+0

沒關係,我忘記了當你重命名工作表時,公式會自動使用新名字。 – Aprillion 2012-04-29 12:20:30

回答

6

=COUNTIF(INDIRECT(GETLASTWSNAME() & "!A2:A7"),"Apple")

10

您可以使用XLM /範圍名稱的辦法解決這個,而不是VBA,如果你喜歡

  1. 定義一個區域名稱,wshNames將板名稱數組
    =RIGHT(GET.WORKBOOK(1),LEN(GET.WORKBOOK(1))-FIND("]",GET.WORKBOOK(1)))
    Uses David Hager's technique
  2. 使用此Excel公式從工作表名稱數組中提取最後一個工作表名稱
    =INDEX(wshNames,COUNTA(wshNames)+RAND()*0)

該公式表示查看所有工作表,然後返回最後一個(使用COUNTA)。 RAND()*0)部分可確保公式是易失性的,並在Excel中進行更新

如果確實使用VBA,則需要確保GETLASTWSNAME函數是不穩定的,即在發生更改時它會被更新。

enter image description here

+3

+1內容豐富! – 2012-05-01 19:46:39

相關問題