Excel:动态数组公式

问题描述 投票:1回答:2

enter image description here

我有一张Excel表格,如图所示。我想制作一个使用单元格E1中的值的变量数组公式。

Cell D4具有以下公式,可以正常工作:

{=SUM(A3:A5*B3:B5)}

但是,我尝试将E5与OFFSET一起使用的单元格D5不起作用:

{=我(我:OFFSET(I,E1,0)* B3:B5)}

任何人都可以解释如何使这个“动态”数组公式工作?

arrays excel
2个回答
2
投票

在你的例子中,部分

A3:OFFSET(A3,E1,0)

会解决范围

A3:A6

即包括4行的范围。显然将此范围与仅包含3行(B3:B5)的范围相乘将会出错。

在任何情况下,最好避免挥发性OFFSET

尝试:

=SUM(A3:INDEX(A3:A5,E1)*B3:B5)

CSE(虽然我不得不承认,我不太确定你为什么不使用没有SUMPRODUCTCSE)。

我也不确定我理解这个设置是“动态”的程度,因为E1中的值必须与公式中其他范围内硬编码的行数一致(B3:B5 here)。因此,实际上你只有一个选择E1的价值;所有其他人都会产生错误。除非您打算将该值纳入第二范围内吗?例如:

=SUM(A3:INDEX(A3:A5,E1)*B3:INDEX(B3:B5,E1))

问候


1
投票

尝试使用OFFSET重塑范围而不是更改起始位置。

=SUM(OFFSET(A3, 0, 0, E1, 1)*OFFSET(b3, 0, 0, E1, 1))

这相当于,

=sum(A3:A5*B3:B5)
© www.soinside.com 2019 - 2024. All rights reserved.