与间接的SUMPRODUCT

我已经检查了与这个主题有关的所有问题,但没有一个帮助。

我有这个公式

=SUMPRODUCT((INDIRECT("Ap"&ROW()&":"&"Ap"&(ROW()+$T4-1)));(INDIRECT("Ap"&ROW()&":"&"Ap"&(ROW()+$T4-1)))) 

这导致 – 0。

 =SUMPRODUCT((INDIRECT("Ap"&ROW()&":"&"Ap"&(ROW()+$T4-1)))*(INDIRECT("Ap"&ROW()&":"&"Ap"&(ROW()+$T4-1)))) 

这导致 – “价值!

用SUM命令一切正常,但我现在卡住了。 我使用Microsoft Office 2013,我似乎无法find这个INDIRECT函数的问题,因为它与其他命令很好地工作。

例如,如果我在前5行中的列数为1到5,列B中列数相同,则我把公式写入C1

 =SUMPRODUCT((INDIRECT("A"&ROW()&":"&"A"&(ROW()+4)))*(INDIRECT("B"&ROW()&":"&"B"&(ROW()+4)))) 

结果与原始示例相同。

你正在使用的build筑相当差,说实话。 不仅是不合格的ROW()是一个非常不合理的select,而且在这种types的设置中几乎总是可以避免易变的INDIRECT结构。

更好的是:

=SUMPRODUCT(INDEX(A:A,ROWS($1:1)):INDEX(A:A,ROWS($1:1)+4),INDEX(B:B,ROWS($1:1)):INDEX(B:B,ROWS($1:1)+4))

请参阅这里讨论使用ROWS而不是ROW的优点:

http://excelxor.com/2014/08/25/row-vs-rows-for-consecutive-integer-generation/

问候

使用您的示例与列A和B中的数据,以及对类似问题的答案 , ROW()函数返回一个数组,而不是一个单一的值。 用sum()包装它解决了这个问题。

 =SUMPRODUCT(INDIRECT("A"&SUM(ROW())&":"&"A"&SUM((ROW()+4))),INDIRECT("B"&SUM(ROW())&":"&"B"&SUM((ROW()+4))))