google-apps-script - 如果其他两列中的值相等,则在空白单元格中插入值
问题描述
试图让一个脚本在谷歌表格上工作,并且无法让第二个要求工作。我从多个地方找到了脚本并将它们组合在一起,但也许我对它的理解还不够,无法正确调整它。我想做的是查看两个不同的列(水果和状态),如果它们具有特定值,则将一个值输入另一列。这是当前脚本:
function myFunction() {
var activeSheet = SpreadsheetApp.getActiveSheet();
var sheetName = activeSheet.getSheetName();
var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
var range = sheet.getDataRange();
var fruit = sheet.getRange('a2:a').getValues();
var cost = sheet.getRange('c2:c').getValues();
var status = sheet.getRange('b2:b').getValues();
for (var row in fruit)
for (var col in fruit[row])
if (fruit[row][0] == 'Apple' && status[row][0] == 'Ripe' ) {
num = parseInt(row) + 1;
sheet.getRange('c' + num).setValue('5.5');
}
}
任何帮助将非常感激。谢谢!
解决方案
我会这样做:
function yourFunction(){
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet3');
var rg=sh.getDataRange();//columns are fruit,status and then cost.
var vA=rg.getValues();
for(var i=1;i<vA.length;i++){
if(vA[i][0].toString().toLowerCase()=='apple' && vA[i][1].toString().toLowerCase()=='ripe'){
vA[i][2]=5.5;//write back into array and write all of them at one time after loop.
}
}
rg.setValues(vA);//This writes all of the data at one time.
}
这是我的电子表格的样子:
推荐阅读
- python - XLXS文件的长字典(内部的元组值+不同长度)变量不起作用
- haskell - 如何保存游戏的输出并打印出来?哈斯克尔
- eclipse - 如何在 Ecore Modeling Project 中设置 EType?
- reporting-services - 在查询数据上发送数据驱动的 SSRS 订阅
- reactjs - 在@shopify/react-i18n 中更改语言时如何重新渲染页面?
- reactjs - 将对象传递给材质 ui 样式的组件
- javascript - 映射函数 - 未处理的 JS 异常:TypeError:未定义不是评估映射的对象
- json - “jsonencode”只需要 1 个参数
- youtube-api - Youtube 分析 API 不是实时的?
- azure - 使用客户端凭据从本地连接到 Azure Blob 存储