使用OFFSET和一列列,然后使用SUMPRODUCT

问题描述 投票:0回答:1

我有这个公式,它很好用:

=OFFSET(INDIRECT(CELL("address";INDEX(INDIRECT($F6&"!C:C");MATCH($G$2;INDIRECT($F6&"!C:C");0))));0;14;1;1)

i给它指定工作表名称和该工作表中特定列中的值,并返回该目标值前面第14列中的数字。该单元格中的值实际上是其旁边的12个值的总和(一年中12个月的12个值)。热点: ;14;1;1)

现在我想更改公式,以便它返回一个包含12个值的数组,这样我就可以将它们与另一个数组求和。实际上,我希望能够选择在最终的总和运算中包括哪些月份。我将上面的公式更改为以下内容:

SUMPRODUCT(OFFSET(INDIRECT(CELL("address";INDEX(INDIRECT($F6&"!C:C");MATCH($G$2;INDIRECT($F6&"!C:C");0))));0;{2;3;4;5;6;7;8;9;10;11;12;13};1;1);$E$52:$E$63)

已更改的部分: SUMPRODUCT( ..... ;{2;3;4;5;6;7;8;9;10;11;12;13};1;1);$E$52:$E$63)

显然是一个简单的更改,但它返回零。感谢您的帮助

arrays excel excel-formula offset sumproduct
1个回答
0
投票

SUMPRODUCT中的第一个参数返回引用数组。因此,您需要通过“取消引用”从这些引用中获取值。一种方法是将引用数组传递给N()函数。所以你的公式应该如下...

=SUMPRODUCT(N(OFFSET(INDIRECT(CELL("address",INDEX(INDIRECT("'"&$F6&"'!C:C"),MATCH($G$2,INDIRECT("'"&$F6&"'!C:C"),0)))),0,{2;3;4;5;6;7;8;9;10;11;12;13})),$E$52:$E$63)

请注意,我的Excel版本使用逗号作为列表分隔符。因此,请相应地调整公式。

© www.soinside.com 2019 - 2024. All rights reserved.