Google sheets GoogleSheets:自动将公式应用于顶部添加的新行
我有一个简单的问题,我没有找到答案,不管是简单还是其他 我的电子表格看起来像这样(比如说) 现在,通过公式B/10计算C列。我想插入一个新行 在第2行(不是末尾)上方,我希望公式应用于C列中的新行 我找不到一种自动完成的方法。我知道怎么做Google sheets GoogleSheets:自动将公式应用于顶部添加的新行,google-sheets,Google Sheets,我有一个简单的问题,我没有找到答案,不管是简单还是其他 我的电子表格看起来像这样(比如说) 现在,通过公式B/10计算C列。我想插入一个新行 在第2行(不是末尾)上方,我希望公式应用于C列中的新行 我找不到一种自动完成的方法。我知道怎么做 通过复制粘贴或抓取句柄,手动复制公式(当然,我确实想对许多列执行此操作) 使用arrayformula扩展公式。我的问题是 如果我像这样使用arrayformula:arrayformula(B2:B/10)如果我在末尾添加行,那就太好了。但当我插入一行,成
- 通过复制粘贴或抓取句柄,手动复制公式(当然,我确实想对许多列执行此操作)
- 使用arrayformula扩展公式。我的问题是
如果我像这样使用arrayformula:
如果我在末尾添加行,那就太好了。但当我插入一行,成为新的第2行时,发生的情况是公式仍然与我输入的原始单元格链接,并更改为arrayformula(B2:B/10)
,这是合乎逻辑的,但不是我想要的,因为新行2没有与之关联的公式arrayformula(B3:B/10)
- 如果我使用
则它适用于包括第1行(列标题)在内的所有行,并且对位置感到非常困惑arrayformula(B:B/10)
必须有一种方法,所以我请求您,互联网为您提供帮助:-)这里有一种方法可以使用应用程序脚本在顶部插入新行,并将公式复制到新行。这可能需要一些定制,具体取决于数据的复杂程度,但希望您能理解
//全局
var ss=SpreadsheetApp.getActive();
函数addFirstRow(){
var firstRow=2;
var sh=ss.getActiveSheet();
var lCol=sh.getLastColumn();
var范围=sh.getRange(第一行,3,1,lCol);
var formulas=range.getFormulas();
sh.insertRowsAfter(1,1);
newRange=sh.getRange(第一行,3,1,lCol);
newRange.setFormulas(公式);
}
如果将数组公式
按如下方式放置在单元格C1中,它实际上将在这种情况下工作:
=ARRAYFORMULA(IF(ROW(B:B)=1, "Tax", IF(ISBLANK(B:B), "", B:B/10)))
B:B/10
进行税务计算从一点阅读,似乎有触发器,简单和可安装。我想我需要后者,脚本需要更改为不添加行,而只是将公式(有3列公式)复制到新创建的行中……这是一个非常好的答案(不需要AppScript),但有几个注意事项:使用
代码>而不是,
。您需要允许在工作表上进行迭代计算,以使公式起作用。很好的一个。但是,如果你试图覆盖范围内的任何单元格内容,它会崩溃得很厉害。
=ARRAYFORMULA(IF(ROW(B:B)=1, "Tax", IF(ISBLANK(B:B), "", B:B/10)))