拖动INDIRECT和

我想我会带你通过我的想法,因为可能有一个更好的办法比使用间接达到预期的结果,但如果不是那么间接解决scheme将非常方便。

我有一个简单的公式

=SUMPRODUCT($E$10:$E20,J10:J20)横跨大量列结束在CC的某处

然而,当我插入一行时,我发现它会改变我的10和10美元到11和11美元,所以我放在那里间接。

 =SUMPRODUCT(INDIRECT("$E$10:$E20"),INDIRECT("J10:J20")) 

我现在意识到,我指的是一个string,如果我把它拖到右边,单元格引用将不会更新。

所以最初我的第一个问题是我怎样才能更新这些,这样我就可以将INDIRECT拖到右边的列上,并更新单元格引用,这样我的公式就会像拖动到列K中一样,或者至less以相同的方式工作等等。

 =SUMPRODUCT(INDIRECT("$E$10:$E20"),INDIRECT("K10:K20")) 

然而

如果有一个比间接更好的解决scheme,当插入或删除行时,保留我的重要公式也是非常有用的。

如果您只想防止行指定在行插入上更改,则您已将行和列都转换为静态string表示forms。 使用INDEX函数replaceINDIRECT函数将允许您使用传统的$使绝对列E,并留下J相对以及硬编码引用的行,以便他们不会更改行插入。

 =SUMPRODUCT((INDEX($E:$E, 10):INDEX($E:$E, 20)), (INDEX(J:J, 10):INDEX(J:J, 20))) 

只是不要插入任何列,一切都应按计划进行。

在相关说明中,在INDIRECT中引用“$ E $ 10:$ E20”作为string可能有助于直观地确定其用途,但是如您所知,即使拖动到新位置或插入行,文本也不会改变。 如果使用INDIRECT(“E10:E20”),则没有区别。