首页 > 解决方案 > 如果其他两列中的值相等,则在空白单元格中插入值

问题描述

试图让一个脚本在谷歌表格上工作,并且无法让第二个要求工作。我从多个地方找到了脚本并将它们组合在一起,但也许我对它的理解还不够,无法正确调整它。我想做的是查看两个不同的列(水果和状态),如果它们具有特定值,则将一个值输入另一列。这是当前脚本:

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');
  }
}

任何帮助将非常感激。谢谢!

标签: google-apps-scriptgoogle-sheets

解决方案


我会这样做:

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.
}

这是我的电子表格的样子:

在此处输入图像描述


推荐阅读