与间接的生产

时间:2015-04-18 11:38:55

标签: excel excel-formula excel-indirect

我已经检查了与此主题相关的所有问题,但没有一个有用。

我有这个公式

=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))))

这导致 - “VALUE!

使用SUM命令一切正常,但我现在坚持这一点。我使用Microsoft Office 2013,我似乎无法找到这个INDIRECT函数的问题,因为它与其他命令很好地配合。

例如,如果我在前5行中的列A中有1到5的数字,而B列中的数字相同,我将公式放在C1

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

结果与原始示例相同。

2 个答案:

答案 0 :(得分: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/

此致

答案 1 :(得分:1)

将您的示例与A列和B列以及this answer on a similar question中的数据一起使用,ROW()函数返回一个数组,而不是单个值。在sum()中将其包装解决了这个问题。

=SUMPRODUCT(INDIRECT("A"&SUM(ROW())&":"&"A"&SUM((ROW()+4))),INDIRECT("B"&SUM(ROW())&":"&"B"&SUM((ROW()+4))))
相关问题