添加新行时如何停止更改静态单元格引用?

How do I stop a static cell refrence from changing, when adding a new row?

我有一份用于计算财务状况的文件。我有以下 working 脚本,当单元格 A2:B2 不为空时,它会在第 2 行上方插入一个新行,将第 2 行和下方的所有数据向下推。

function AddaLine() {
  var spreadsheet = SpreadsheetApp.getActive();
  var [a2, b2] = spreadsheet.getActiveSheet().getRange("A2:B2").getDisplayValues()[0];
  if (a2 != "" && b2 != "") {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('2:2').activate();
  spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
  spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
  spreadsheet.getRange('A2').activate();
  }
}

单元格 A1 包含:

=SUM($A:A3)

我希望 A2 保持静态,但 A3 随着自动添加新行而增加。我遇到的问题是,当添加新行并变为

时,静态单元格引用正在增加
=SUM($A:A4)

我要它去

=SUM($A:A4)

每次在第 2 行上方插入新行时,仅递增第二个非静态引用单元格。

$A:A5
$A:A6
$A:A7
...
$A:A5000
...

任何帮助弄清楚我认为是一个我无法解决的简单问题的人都将不胜感激!

注意:我正在尝试以自动化在手机应用程序和 PC 中运行的方式来执行此操作。

而不是=SUM($A:A3)尝试

=sum(offset(A3,-row(A3)+2,,row(A3)-1))

INDIRECTINDEX 可以做静态引用:

=SUM(INDIRECT("A2"):A3)

=SUM(INDEX(A:A,2):A3)