[英]Returning data from across multiple worksheets in Excel
如何創建公式,以從不同的工作表中返回總數,平均值,計數,最小值,最大值等? (存在的)列的標題信息是一致的,但是從一張紙到下一張紙可能會相同,也可能不會不同。 假設我有7個數據標簽,例如,其中的某些或全部可能包含bean的列標題,但是所有標簽之間的列號可能一致,也可能不一致。 它們在工作表中的實際位置是完全動態的。
我的電子表格具有幾個要在摘要/報告表中與之進行比較的原始數據選項卡。 我敢肯定這是可以做到的,但恐怕這超出了這個老腦子的能力。
我已經考慮過,並且使用了一系列使用間接,索引,匹配的公式,但無法弄清楚。 您的幫助將不勝感激。 謝謝
這是一個僅適用於功能的解決方案。 最終結果將如下所示:
我們將使用四(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
的總計示例公式:
C6
中Max的示例公式:
最后,您所要做的就是在帶有工作表名稱的所有列中復制公式。
只需在最后一個名稱旁邊添加工作表名稱並復制公式即可。 而已。 我希望這接近您想要的,並且希望我使用的所有功能在Excel 2000中都可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.