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

时间:2017-04-02 15:47:35

标签: excel syntax excel-formula worksheet excel-indirect

我有以下公式:

=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))

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

1 个答案:

答案 0 :(得分:1)

由于工作表通常具有字母名称,并且您尝试使用COUNTA而非COUNT的解决方案,请使用

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函数,因此添加另一个并不是什么大不了的事。