Excel 中的 INDEX 函数可以返回数组吗?

Excel 中的 INDEX 函数可以返回数组吗?

参照下面的截图,我对 MS Excel 中的 Index 函数有一个疑问。INDEX 真的可以返回数组吗?例如,我在单元格 A1:A5 中有数字,如截图所示。在单元格 C1:C5 中,我输入了一个数组公式

{=INDEX(A1:A5,ROW(A1:A5))}

并且它成功返回 A1:A5 中的数字,表明 INDEX 可以返回一组单元格中的数组。

但是当我使用像这样的公式时

{=SUM(INDEX(A1:A5,ROW(A1:A5)))}

我期望返回值为 15,但我只得到数组的第一个元素,即 1。

是这样吗?INDEX 可以返回一个可以在其他基于数组的公式中使用的数组吗?

在此处输入图片描述

答案1

=SUM(INDEX(A1:A5,0,1))

使用0作为行参数,INDEX将返回整个列

由于您只有一列,因此您还可以使用:

=SUM(INDEX(A1:A5,0))

这当然相当于

=SUM(A1:A5)

为了扩展@BarryHoudini 的评论,对于来自 的非连续返回数组INDEX,您可以使用类似以下内容:

=SUM(INDEX(myRange,N(IF(1,{1,3,5}))))

在您的示例数组中,它将返回9

答案2

这是在查找中“向左看”的一种方法。因此,这是它可以为另一个函数提供功能的另一种方法。

=VLOOKUP(C1,INDEX(A1:B5,SEQUENCE(5),{2,1}),2,FALSE)

(使用SEQUENCE()'因为这是为了引起人们未来的兴趣,但这几种不同的ROW()方法效果很好。)

关键是函数末尾的矩阵常数INDEX()。可以重新组织表中列的顺序,也可以删除列。因此,表格变为 B 列,然后是 A 列,因此VLOOKUP()令人满意,因为对它而言,它“看起来正确”,所以每个人都很满意。

我敢打赌,它也可以在分离公式的字符串设置中使用,但不记得需要费心。不过现在可能有些东西很吸引人,可以SEEQUENCE()让人们以更直接的方式处理序列常数。嗯……

因此绝对不仅仅是像 Excel 世界中的 SUM 和 COUNT 这样的收集函数。

相关内容