我正在尝试根据另外两个列的值设置一个新的计算列。条件是:每当我在C和D列中插入新数据时,E列应该被计算为"=C/D“。
这就相当于熊猫的情况:
df['new']= df['C']/df['D']
但我不知道JS是否支持Pandas提供的这种无迭代特性
我试过了,但是什么也没有发生:
function sample(){
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet2');
var range=sheet.getRange('E2:E20000')
for (i=0; i<range.length; i++){
if (i==''){
i.setFormula(`=${C[i]/D[i]}`);
}
else {
pass
}
}
}
发布于 2021-11-13 12:17:26
您可以像这样对整个列执行setFormula
:
var range=sheet.getRange('E2:E20000')
range.setFormula("C2/D2")
这类似于设置条件格式。范围的左上角是最重要的。其他一切都是相对的。参见my answer here。
发布于 2021-11-13 09:34:43
试试这个:
function sample() {
const ss = SpreadsheetApp.getActive()
const sh = ss.getSheetByName('Sheet2');
const sr = 2;
const rg = sh.getRange(2,1,sh.getLastRow() - sr + 1,5);
const vs = rg.getValues();
let cold =vs.map((r,i) => {
r[4] = `${"=C" + Number(i + sr) + "/D" + Number(i + sr)}`;
return [r[4]];
});
sh.getRange(sr,5,cold.length,cold[0].length).setFormulas(cold).setNumberFormat("#,##0.00");
}
https://stackoverflow.com/questions/69956017
复制