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))
我需要从特定数组中检索由索引分隔的范围
我不能使用 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))