2017-04-02 43 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

是的,空白行存在于我的程序中,因此可能会导致问题。 –