在Excel中的多行上使用SUMPRODUCT和OFFSET

在Excel中的多行上使用SUMPRODUCT和OFFSET,excel,Excel,我有一个关于在Excel中使用偏移量的问题。 例如,我有一个表,表中的值随年份而变化。 然后,我有一个表,表中的一些值按年/月变化 我想写一个公式。 =总和积((E2:E37)*偏移量(A1,C2:C37,1),E2:E37) 但它返回#值 简言之,我希望使用C2:C37中的一个数值数组,即:C2:C37中的一个值数组,即:{1,1,1,1,1,1,1,1,简简短,我想使用C2:C37中的一个值数组在C2:C37中的一个值数组,我想使用C2:C2:C33:3:3:3,3,1,1,1,1,1,1

我有一个关于在Excel中使用偏移量的问题。 例如,我有一个表,表中的值随年份而变化。 然后,我有一个表,表中的一些值按年/月变化

我想写一个公式。 =总和积((E2:E37)*偏移量(A1,C2:C37,1),E2:E37) 但它返回#值

简言之,我希望使用C2:C37中的一个数值数组,即:C2:C37中的一个值数组,即:{1,1,1,1,1,1,1,1,简简短,我想使用C2:C37中的一个值数组在C2:C37中的一个值数组,我想使用C2:C2:C33:3:3:3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,},然后这个数组被用在SUMPRODUCT函数中

有人能帮我解决这个问题吗!问题

提前谢谢

显然(我不知道这个)偏移量是不寻常的,因为当它与数组一起用作第二个参数时,可以返回一组范围对象。如果您将其传递给大多数函数,它们将无法处理此问题。但是如果你通过N函数,你会得到正确的答案

=SUMPRODUCT((E2:E37)*N(OFFSET(A1,C2:C37,1)))

注意,它们似乎给出了一个#值数组!通过求值公式运行时出错,但这些错误在通过N函数后解决

当然,更常见的做法是使用简单的方法,并将Index或Vlookup与helper列一起使用。当我尝试在单个数组公式中执行此操作而不使用偏移量时,我的第一个想法是:-

=SUM(E2:E37*MMULT(N(C2:C37=TRANSPOSE((ROW(A2:A4)-1))),B2:B4))
我认为补偿方式更简单、更有效

但在这个只有少量类别的特殊情况下,您可以使用这个数组公式,这可能是最简单的方法:-

=SUM(CHOOSE(C2:C37+1,0,B2,B3,B4)*E2:E37)
上述公式仅适用于“键”与查找列中的行号相同的特殊情况。偏移方法可以很容易地进行调整,以合并查找:-

=SUM((E2:E37)*N(OFFSET(A1,IFERROR(MATCH(C2:C37,A2:A4,0),0),1)))

您的问题中的公式似乎使用了图像中表格中的不同列?不要过早地对其进行否决-这实际上是一个非常有趣的问题。看见
=SUM((E2:E37)*N(OFFSET(A1,IFERROR(MATCH(C2:C37,A2:A4,0),0),1)))