用单元格引用替换间接数组输出

用单元格引用替换间接数组输出

设置

我有一个神秘的公式,看起来像这样

=SUMPRODUCT(SUMIF(INDIRECT({"A1:D1";"F1:I1"}), 2019, INDIRECT({"A2:D2";"F2:I2"})))

带数组间接的 SUMIF

问题

我希望用INDIRECT()直接单元格引用替换函数。因此我希望可以使用如下公式:

=SUMPRODUCT(SUMIF((A1:D1, F1:I1), 2019, (A2:D2, F2:I2)))

但这又回来了#VALUE!

有什么方法可以让它工作吗?

我尝试创建包含非连续范围的命名范围。这没有帮助。将其设为数组公式也无济于事。

我看过的东西

我使用“公式求值”工具逐步执行了公式,其中有一个步骤导致INDIRECT()函数求值错误#VALUE!。但公式仍然有效。

INDIRECTs 计算结果为 #VALUE! 错误

因此,这就像有一些特殊的东西,INDIRECT()它返回一个可以接受的范围的数组SUMIF(),即使中间步骤的评估结果是错误的。

我还使用了F9公式编辑器中的工具来逐个评估公式。有趣的是,如果您也按照与评估公式相同的步骤操作,公式评估结果会出错。

我非常好奇想知道INDIRECT()返回范围数组时发生了什么。因此,如果有人能解释一下,我将不胜感激。

这个问题涉及到这个话题,但并没有真正解释它:https://stackoverflow.com/questions/11124173/row-function-behaves-differently-inside-sum-and-sumproduct

谢谢!

答案1

欢迎来到超级用户。

我不太清楚您的 sumproduct 如何工作,但您可以使用这些 sumif 公式来获得相同的结果。

=SUMIF(A1:D1, 2019, A2:D2)+SUMIF(F1:I1,2019,F2:I2)

相关内容