Return 数组中的范围 Excel

Return the range within an array Excel

我需要从特定数组中检索由索引分隔的范围

我不能使用 OFFSET,因为它不使用数组作为参数。 然后该范围将用于二次计算

例子:

我想计算数字列中第 4 到第 11 个值的总和。

所以最后公式应该类似于: =SUM(Numbers[4:10]) = 36 4 和 10 是所需的索引。

我尝试使用 OFFSET 和 INDEX,但不知道该怎么做。

Index()INDIRECT() 都可以。 OFFSET() 也可以,但需要应用一些技巧。正如@BigBen 建议的那样,您可以像 =SUM(INDEX(B:B,5):INDEX(B:B,11)) 一样使用 INDEX(),但我相信您不会喜欢硬编码索引号。因此,您可以使用以下公式动态输入两个索引并获得这些索引之间的总和。尝试-

=SUM(INDEX(B:B, MATCH(F2,A1:A21,0)):INDEX(B:B,MATCH(F3,A1:A21,0)))

INDIREC()也将以这种方式工作。

=SUM(INDIRECT("B" & MATCH(F2,A1:A21,0) & ":B" & MATCH(F3,A1:A21,0)))

如果你有 Excel365 那么你可以使用 FILTER() 来简化公式,比如-

=SUM(FILTER(B2:B21,(A2:A21>=F2)*(A2:A21<=F3)))

使用 INDEX 和 SEQUENCE:

=SUM(INDEX(FILTER(Numbers,Numbers<>0),SEQUENCE(8)+3))