拖动间接和

Dragging INDIRECT and

我想我会告诉你我的想法,因为可能有比使用 INDIRECT 更好的方法来达到预期的结果,但如果没有,那么使用 indirect 的解决方案会非常方便。

我有一个简单的公式

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

但是我发现当我插入一行时它会将我的 10 和 $10 更改为 11 和 $11,所以我在那里放置了一个间接的。

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

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

所以最初我的第一个问题是如何更新这些,以便我可以将 INDIRECT 拖到右侧的列上并更新单元格引用,以便我的公式看起来或至少有效拖入K列等同理

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

然而

如果有比间接方法更好的解决方案来在插入或删除行时保留我的原始公式,那也会非常有帮助。

当您真的只想防止行指定在行插入时发生更改时,您已经将行和列都变成了静态字符串表示。替换您的 INDIRECT functions with INDEX functions 将允许您使用传统的 $ 使列 E 成为绝对的,并保留相对的列 J 以及对引用的行进行硬编码,这样它们就不会改变行插入。

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

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

在相关说明中,将“$E$10:$E20”作为 INDIRECT 中的字符串引用可能有助于从视觉上识别其用途,但正如您所指出的,尽管拖动到新的位置或插入行。如果您使用 INDIRECT("E10:E20").

则没有区别