我有一个简单的问题,没有找到答案,无论是简单还是其他!
我的电子表格看起来像这样(例如)
A B C
1 Name Amount Tax
2 Neil 20 2
3 Rose 100 10
现在,列C通过公式B / 10计算。我想在第2行上方插入新行(而不是在末尾),并且我希望公式适用于C列中的新行。
我找不到自动执行此操作的方法。我知道如何-通过复制和粘贴或抓取手柄来手动复制公式(但当然我实际上确实要这样做很多列)-使用arrayformula扩展公式。我的问题是,如果我像这样使用arrayformula:arrayformula(B2:B/10)如果在末尾添加行,那很棒。但是,当我插入一行成为新的第二行时,发生的事情是该公式仍与我输入的原始单元格保持链接,并且更改arrayformula(B3:B/10) 为符合逻辑但不是我想要的内容,因为新的第二行没有与之关联的公式-如果我使用arrayformula(B:B/10)它,那么它将应用于包括行1(列标题)在内的所有行,并且对位置非常困惑。
一定有办法,所以我问你,互联网为你提供帮助:-)
小智 6
如果您按以下方式将其放置在单元格C1中,则在这种情况下,an ARRAYFORMULA实际上可以工作:
=ARRAYFORMULA(IF(ROW(B:B)=1, "Tax", IF(ISBLANK(B:B), "", B:B/10)))
Run Code Online (Sandbox Code Playgroud)
B:B/10。小智 4
以下是使用 Apps 脚本在顶部插入新行并将公式复制到新行的方法。根据您的数据的复杂程度,可能需要进行一些定制,但希望您能明白这一点。
// global
var ss = SpreadsheetApp.getActive();
function addFirstRow() {
var firstRow = 2;
var sh = ss.getActiveSheet();
var lCol = sh.getLastColumn();
var range = sh.getRange(firstRow, 3, 1, lCol);
var formulas = range.getFormulas();
sh.insertRowsAfter(1, 1);
newRange = sh.getRange(firstRow, 3, 1, lCol);
newRange.setFormulas(formulas);
}Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8177 次 |
| 最近记录: |