簡體   English   中英

從Excel中的多個工作表返回數據

[英]Returning data from across multiple worksheets in Excel

如何創建公式,以從不同的工作表中返回總數,平均值,計數,最小值,最大值等? (存在的)列的標題信息是一致的,但是從一張紙到下一張紙可能會相同,也可能不會不同。 假設我有7個數據標簽,例如,其中的某些或全部可能包含bean的列標題,但是所有標簽之間的列號可能一致,也可能不一致。 它們在工作表中的實際位置是完全動態的。

我的電子表格具有幾個要在摘要/報告表中與之進行比較的原始數據選項卡。 我敢肯定這是可以做到的,但恐怕這超出了這個老腦子的能力。

我已經考慮過,並且使用了一系列使用間接,索引,匹配的公式,但無法弄清楚。 您的幫助將不勝感激。 謝謝

這是一個僅適用於功能的解決方案。 最終結果將如下所示:

在此處輸入圖片說明

我們將使用四(4)個主要功能:

  1. 地址
  2. 間接
  3. 比賽
  4. 剩下

注意:如果您對如何使用這些功能有疑問, 點擊鏈接

公式: 在上面的單元格C4中

=AVERAGE(
         INDIRECT(
                  "'"& C$3 & "'!" &                                          
                  LEFT(ADDRESS(1,MATCH($E$2,INDIRECT("'"&C$3&"'!1:1"),0),4,1),1)
                  & ":" &
                  LEFT(ADDRESS(1,MATCH($E$2,INDIRECT("'"&C$3&"'!1:1"),0),4,1),1)
                  )
        )

Edit1:要處理以下針對超過26的標題的評論,請更改此

LEFT(ADDRESS(1,MATCH($E$2,INDIRECT("'"&C$3&"'!1:1"),0),4,1),1)

對此:

SUBSTITUTE(ADDRESS(1,MATCH($E$2,INDIRECT("'"&C$3&"'!1:1"),0),4,1),"1","")

基本上做什么是:

  • 使用MATCH函數查找標頭Bean所在的位置。 為此,由於工作表名稱是動態的,因此必須合並使用INDIRECT (在此示例中,工作表名稱在C3- Data1 )。 (我假設您的所有標頭都在第一行,我在其中使用1:1 注意:在此示例中, Bean位於Data1表的H列中

     MATCH($E$2,INDIRECT("'"&C$3&"'!1:1"),0) <~~ returns 8 
  • 找到它的位置后,我們需要獲取整個列地址,以便我們可以應用計數和求和功能(例如SUM,COUNT,AVERAGE等)。 為此,我們將ADDRESS函數與LEFT結合使用以獲得列字母。

     LEFT(ADDRESS(1,MATCH($E$2,INDIRECT("'"&C$3&"'!1:1"),0),4,1),1) <~~ returns H 
  • 然后,我們只需重復該公式並將其與:連接即可得到H:H

  • 現在我們有了列地址,我們只需再次將其與工作表名稱連接起來,然后應用最終的INDIRECT函數以及您選擇的計數和/或求和函數。

C5總計示例公式:

在此處輸入圖片說明

C6Max的示例公式:

在此處輸入圖片說明

最后,您所要做的就是在帶有工作表名稱的所有列中復制公式。
只需在最后一個名稱旁邊添加工作表名稱並復制公式即可。 而已。 我希望這接近您想要的,並且希望我使用的所有功能在Excel 2000中都可用。

暫無
暫無

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

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