簡體   English   中英

如何讓我的公式始終參考最后一張紙?

[英]How do I get my formula to always reference to the last sheet?

我目前在我的 excel 文件中有 2 個工作表。

第一個工作表稱為“摘要”頁面,它顯示第二個工作表的摘要結果。

第二張表稱為原始數據。 一個例子是名為 Fruits 的列。

Apple
Apple
Apple
Banana
Banana
Pear

在第一張表中,我將有一個公式來計算各個水果出現的次數,並且結果將顯示在不同的單元格中。

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

我想要做的是,我是否可以對公式進行編程,以便每次添加新的原始數據表(第三張表)時,第一張表上的統計數據都可以參考最新的表來獲取信息。

(假設數據的定位和所有的都和第二張表一樣。)

到目前為止,我所做的是推出了一個函數GETLASTWSNAME() ,它能夠始終檢索最后一個工作表的名稱。 但我似乎不太可能將函數嵌套在 countif 公式本身中。

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

上面的公式是我希望我的公式如何工作,但遺憾的是 excel 不允許我這樣做。

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

如果您願意,您可以使用 XLM/Range Name 解決方法,而不是 VBA

  1. 定義一個范圍名稱,wshNames 來保存工作表名稱的數組
    =RIGHT(GET.WORKBOOK(1),LEN(GET.WORKBOOK(1))-FIND("]",GET.WORKBOOK(1)))
    使用 David Hager 的技術
  2. 使用此 Excel 公式從工作表名稱數組中提取最后一個工作表名稱
    =INDEX(wshNames,COUNTA(wshNames)+RAND()*0)

此公式表示查看所有工作表,然后返回最后一張(使用 COUNTA)。 RAND()*0)部分確保公式是易變的,並在 Excel 執行時更新

如果您確實使用 VBA,您將需要確保您的GETLASTWSNAME函數是易變的,即在發生更改時它會更新。

在此處輸入圖片說明

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

在帶有溢出函數和新的 Sequence() 的 Excel 中,您可以使用相同的技術從一個單元格中列出所有工作表名稱! 先到后或后到先,您的選擇。 使用 Transpose,您可以獲得每張表的列標題(Obs volatile)。
按照 Tomalak 的說法定義命名公式 wshNames 后(感謝您的提示),我使用了:

=INDEX(wshNames;COUNTA(wshNames)+1-SEQUENCE(COUNTA(wshNames);1;COUNTA(wshNames);-1))

我的 Excel 正在使用“;” 作為分隔符,您可能需要用逗號更改分號 Rolf H

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM