【问题标题】:Excel - Index function with 2 arrays inside referenceExcel - 参考内有 2 个数组的索引函数
【发布时间】:2018-06-24 14:13:28
【问题描述】:

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

=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 函数,希望有人能帮我解释一下这种机制是如何工作的,是否有任何在线资源提到这种嵌套数组的使用?

谢谢

【问题讨论】:

    标签: arrays excel indexing


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 恕我直言,公式在没有INDEX的情况下给出相同的结果,即=SUMPRODUCT((GLs=$B9)* (Ops INDIRECT(D$5))*(Periods=Period))/1000
    猜你喜欢
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 2021-04-04
    • 1970-01-01
    • 2020-09-03
    • 2019-04-01
    • 2011-11-01
    相关资源
    最近更新 更多