2017-04-02 47 views
1

我有以下公式:間接使用可變範圍,工作表名稱

=SUMPRODUCT(COUNTIF(INDIRECT("'"&D1:D2&"'!A1"),E2)) 

從這裏 https://www.extendoffice.com/documents/excel/2541-excel-countif-across-multiple-worksheets.html

把它現在,我正在做COUNTA到d柱:

=COUNTA(D:D) 

這將基本上導致我有張數。現在

,我願作第一個公式,使用第二個結果:

=SUMPRODUCT(COUNTIF(INDIRECT("'"&D1:***COUNTA RESULT***&"'!A1"),E2)) 

什麼是執行正確的語法?沒能成功。

回答

1

由於工作表通常有字母的名字和你正在嘗試與COUNTA不計,使用的解決方案,

D1:index(D:D, match("zzz", D:D)) 

...來描述你的工作表名稱的範圍。

但是,如果工作表的名稱是數字那麼,

D1:index(D:D, match(1e99, D:D)) 

完成的,

=SUMPRODUCT(COUNTIF(INDIRECT("'"&D1:index(D:D, match("zzz", D:D))&"'!A1"),E2)) 
=SUMPRODUCT(COUNTIF(INDIRECT("'"&D1:index(D:D, match(1e99, D:D))&"'!A1"),E2)) 

你也可以使用OFFSET(D1, 0, 0, COUNTA(D:D), 1)。既然你已經使用了一個帶有INDIRECT的volatile函數,添加另一個並不是什麼大問題。

+0

工程就像一個魅力!非常感謝! –

+0

請注意,帶有OFFSET的後一種解決方案因空行造成計數不佳。 – Jeeped

+0

是的,空白行存在於我的程序中,因此可能會導致問題。 –