Простой цикл, если оператор и выходное сообщение - PullRequest
0 голосов
/ 21 октября 2018

Я думаю, что это довольно просто, но я новичок в этом, поэтому я не уверен, куда идти дальше:)

У меня есть Google Sheet, с некоторыми данными (довольно большой лист),Мне нужен скрипт, который проверяет, больше ли число в ячейке (столбец I), чем число в той же строке, но в другом столбце (столбец D).

Представьте себе два столбца с 5 строками: Столбец D =(3, 3, 3, 3, 3) и столбец I = (2, 2, 7, 2, 2)

ТАК в этом примере я хочу, чтобы скрипт сообщал мне, что у меня проблема в«Строка 3», потому что число в столбце I, строка 3 больше, чем число в столбце D, строка 3:)

Вот что у меня есть:

    function Check() {

      var spreadsheet = SpreadsheetApp.getActive();
      var sheet = spreadsheet.getActiveSheet();
      var lr = sheet.getLastRow();
      var Summary;

      for (var i=6; i<lr; i++) {
        if (sheet.getRange(i,9) > sheet.getRange(i,4)){
          summary.setvalue("Problem")

         }  
      } 

    }

Я хочуэто начать в строке 6, потому что мои данные начинаются здесь.Я проверяю только столбец I (следовательно, 9) и столбец D (следовательно, 4)

Я не уверен, что делать с моим циклом for и оператором If отсюда?Итак, теперь код проверяет каждую строку в столбце 4 (D) и столбце I (9), но как сохранить значение, если число в столбце 9 больше, чем число в столбце 4?И я также хочу вывод, со всеми строками, где у нас есть проблемы, когда код готов?Если у нас нет проблем, я хочу получить сообщение: «Нет проблем»

Кто-нибудь может подсказать мне отсюда?

1 Ответ

0 голосов
/ 22 октября 2018

Если ваш вывод может быть установлен на листе (скажем, в столбце «J»), вы можете использовать это:

function Check() {
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet       = spreadsheet.getActiveSheet();
  var maxRows     = sheet.getMaxRows(); // get the number of rows
  var startRow    = 6;
  var diffCol1    = 'D';
  var diffCol2    = 'I';
  var outputCol   = 'J';
  var outputStrOK = 'no problem';
  var outputStrKO = 'problem';
  var outputRange = []; // stored values
  for (var i = startRow; i <= maxRows; i++) {
    var valueA = sheet.getRange(diffCol2+i).getValue();
    var valueB = sheet.getRange(diffCol1+i).getValue();
    // add controls on values then
    if (valueA > valueB) {
      outputRange.push([outputStrKO]);
    } else {
      outputRange.push([outputStrOK]);
    }
  }
  // setting a range of values is much faster than fulfilling cell by cell in loop
  sheet.getRange(outputCol+startRow+':'+outputCol+maxRows).setValues(outputRange);
}

, в результате вы должны получить это:

#|D|I|J
6|9|4|problem
7|4|9|no problem
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...