首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在apps脚本中设置类似pandas的计算列?

如何在apps脚本中设置类似pandas的计算列?
EN

Stack Overflow用户
提问于 2021-11-13 16:10:00
回答 2查看 42关注 0票数 0

我正在尝试根据另外两个列的值设置一个新的计算列。条件是:每当我在C和D列中插入新数据时,E列应该被计算为"=C/D“。

这就相当于熊猫的情况:

代码语言:javascript
运行
复制
df['new']= df['C']/df['D']

但我不知道JS是否支持Pandas提供的这种无迭代特性

我试过了,但是什么也没有发生:

代码语言:javascript
运行
复制
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
    }
  }
}
EN

回答 2

Stack Overflow用户

发布于 2021-11-13 20:17:26

您可以像这样对整个列执行setFormula

代码语言:javascript
运行
复制
var range=sheet.getRange('E2:E20000')
range.setFormula("C2/D2")

这类似于设置条件格式。范围的左上角是最重要的。其他一切都是相对的。参见my answer here

票数 1
EN

Stack Overflow用户

发布于 2021-11-13 17:34:43

试试这个:

代码语言:javascript
运行
复制
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");
}

setFormulas

setNumberFormat

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69956017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档