Вставьте значение в пустую ячейку, если значения в двух других столбцах равны - PullRequest
0 голосов
/ 18 мая 2018

пытается заставить скрипт работать на листах гугл и не может выполнить второе требование.Я нашел сценарий из разных мест и соединил его с тем, что он есть сейчас, но, возможно, я недостаточно разбираюсь в нем, чтобы иметь возможность правильно его настроить.Я хотел бы посмотреть на два разных столбца (фрукты и статус) и, если они имеют определенное значение, ввести значение в другой столбец.Вот текущий сценарий:

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

Любая помощь будет принята с благодарностью.Спасибо!

1 Ответ

0 голосов
/ 18 мая 2018

Я бы сделал это так:

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

Вот так выглядит моя таблица:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...