设置
我有一个神秘的公式,看起来像这样
=SUMPRODUCT(SUMIF(INDIRECT({"A1:D1";"F1:I1"}), 2019, INDIRECT({"A2:D2";"F2:I2"})))
问题
我希望用INDIRECT()
直接单元格引用替换函数。因此我希望可以使用如下公式:
=SUMPRODUCT(SUMIF((A1:D1, F1:I1), 2019, (A2:D2, F2:I2)))
但这又回来了#VALUE!
有什么方法可以让它工作吗?
我尝试创建包含非连续范围的命名范围。这没有帮助。将其设为数组公式也无济于事。
我看过的东西
我使用“公式求值”工具逐步执行了公式,其中有一个步骤导致INDIRECT()
函数求值错误#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)