2015-10-08 29 views
0

我的工作簿中有20多張工作表。我正在嘗試爲月和年彙總所有值。SUMPRODUCT橫跨所有工作表

這個公式我試圖弄清楚。這在技術上是假設查找所有工作表併爲指定月份添加總計值,在本例中爲1月。

= SUMPRODUCT( - (MONTH( '通配符在這裏' B25:B48)= 1), '這裏通配符' D25:D48!)

= SUMPRODUCT( - (MONTH ('通配符在這裏'!$ B $ 25:$ B $ 48)= 1),'通配符在這裏'!$ C $ 25:$ C $ 48)

我似乎無法完成這項工作。我收到#REF錯誤。

+0

你能澄清你的命名約定是如何設置的? MONTH是每個標籤的前綴嗎?它提到了什麼? –

+0

我相信月是功能。 '= SUMPRODUCT( - (MONTH(Sheet1!A2:A11)= 1),Sheet1!B2:B11)'適用於我,只要A1至A11有適當的日期。你的功能包括''!這使得它看起來像你正在輸入一個你不能擁有的空白表名。另外,excel並不能真正處理所有工作表中的公式,因此您可能更適合使用匯總表並單獨對每個工作表進行計算並對結果進行彙總。 – gtwebb

+0

你說「SUM和月份和年份的所有值」,雖然我看不到任何企圖在公式中引用任何一年的參考? –

回答

0

理論上,這可以使用兩個概念:數組公式和INDIRECT函數。一個假設的公式可能是這個樣子:

=SUM(INDIRECT("Sheet"&{1,2,3,4,5}&"!A1")) 

在這個例子中,間接功能是用來輸入每個工作表名稱(假設你有工作表Sheet1,Sheet2中,工作表Sheet 3等),並從所有的回暖A1那些命名錶。然而,間接函數不允許使用這種方式數組公式,沒有一個額外的步驟(見@ XORLX的評論下面):

=SUM(N(INDIRECT("Sheet"&{1,2,3,4,5}&"!A1"))) 

由於紙張號這裏是硬編碼{1,2, 3,4,5},你可以像輸入其他的那樣輸入這個公式 - 這樣,它就不是一個完整的「數組公式」。

另一種方法:

最簡單的方法將是給每片在摘要標籤欄,然後添加所有這些一起。你可以通過編程來完成這個任務,所以它不像你想象的那麼痛苦(雖然它會佔用很多空間)。

假設Sheet1是空白的,沿着第1行從B列開始,你有每個標籤的名字(我無法完全說明你的問題,但讓我們假設類似「2010; 2011; 2012 ... 「等等。從列2開始,在第2行開始,你有你想要添加的月份,我還假設每個月份都沿着每個標籤的A列設置,而且你的結果是在那個月。每個選項卡的塔B放在一起,在式B2和拖累/右將是:

=VLOOKUP($A2,INDIRECT("'"&B$1&"'!A:B"),2,0) 

這將拾取從A列中的月份的名稱,並檢查它拉其片從使用INDIRECT函數,一旦它有表單名稱,它就會添加「A:B」,這意味着它會被搜索ch列A使用VLOOKUP。它給你來自第二列(B列)的值,並且需要精確匹配來給出值。

+0

Re「INDIRECT函數不允許以這種方式使用Array公式」,你能澄清一下嗎?這是一個很大的聲明。在INDIRECT - 即= SUM(N(INDIRECT(「Sheet」&{1,2,3,4,5}&「!A1))))之前緊跟在您的構造之上的N函數的一小部分將創建數組求和。更重要的是,這種特殊的結構甚至不需要CSE。 –

+0

@XORLX太棒了;我從來沒有見過,謝謝。我會編輯我的迴應。 –

+0

不客氣。仍然不太清楚OP要的是什麼,不過我確信我們可以在發現時相應調整N/INDIRECT多張表的設置。請注意,如果被查詢的數組被包含的文本值被查詢,我們將使用T而不是N來強制INDIRECT中必要的數組(儘管顯然在這種情況下我們不會求和它!)。 –