间接使用可变范围的工作表名称

我有以下公式:

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

从这里拿走https://www.extendoffice.com/documents/excel/2541-excel-countif-across-multiple-worksheets.html

现在,我正在对D列做一个COUNTA:

 =COUNTA(D:D) 

这基本上会导致我有张数。

现在,我想使第一个公式使用第二个公式的结果:

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

什么是正确的语法来执行? 没有成功。

由于工作表通常具有字母名称,而您正尝试使用COUNTA而不是COUNT的解决scheme,

 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函数,添加另一个并不是什么大问题。