2

我已经检查了与该主题相关的所有问题,但没有任何帮助。

我有这个公式

=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,但我似乎无法找出此INDIRECT功能的问题,因为它与其他命令很好地配合使用。

例如,如果我A在前 5 行中有从 1 到 5 的列号,并且在 column 中相同B,我将公式放入C1

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

结果与原始示例相同。

4

2 回答 2

3

老实说,您使用的结构很差。不合格的 ROW() 不仅是一个非常不严谨的选择,而且在这种类型的设置中几乎总是可以避免不稳定的 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/

问候

于 2015-04-18T12:29:28.040 回答
1

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

=SUMPRODUCT(INDIRECT("A"&SUM(ROW())&":"&"A"&SUM((ROW()+4))),INDIRECT("B"&SUM(ROW())&":"&"B"&SUM((ROW()+4))))
于 2015-04-18T12:13:05.143 回答