首页 > 解决方案 > Excel - 参考内有 2 个数组的索引函数

问题描述

我部门的一个人写了这个复杂的公式,我不太明白这个函数是如何工作的,希望你能帮助我理解。函数写如下

=SUMPRODUCT((GLs=$B9)* INDEX(Ops INDIRECT(D$5),,)*(Periods=Period))/1000

我不明白的部分是 INDEX 部分。在数组的引用中,这个人在其中放入了 2 个数组,其中一个数组比另一个数组大。当我使用评估公式时,它返回如下索引函数(我只显示对 INDEX 公式的影响)

=SUMPRODUCT((GLs=$B9)* INDEX('Ops Asia'!$F$7:$BV$38 'Ops Asia'!$AV$7:$BG$545,,)*(Periods=Period))/1000

进一步的评估步骤将返回 INDEX 公式,如下所示

=SUMPRODUCT((GLs=$B9)* INDEX('Ops Asia'!$AV$7:$BG$38,,)*(Periods=Period))/1000

似乎通过将 2 个数组放在 INDEX 函数的引用部分中,会返回一个较小的数组。我从来没有听说过这种使用 INDEX 函数,希望有人能帮助我解释一下这种机制是如何工作的,是否有任何在线资源提到这种使用嵌套数组?

谢谢

标签: arraysexcelindexing

解决方案


INDEX 用于提供两个范围的交集。一个更容易理解的例子可能是,

=SUM(INDEX(A:C 5:7, , ))

A:C 列和 5:7 行的交叉点(即重叠单元格)将是 A5:C7。请注意,INDEX 以其数组形式使用,没有提供行号或列号(尽管它们需要用空格表示,因此需要额外的逗号)。

我不确定 INDEX 是否=SUM(A:C 5:7)和同样的事情一样是绝对需要的。它的使用可能只是将交集包含到 SUMPRODUCT 公式中的一种简单方法。


推荐阅读