Google Script, найти значение соответствия из одного столбца с другим столбцом - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь сделать «Проверка цвета», он изменит цвет при обнаружении ввода значения.

Мне нужно найти значение совпадения из одного столбца с другим столбцом.Найти соответствие для каждого значения в каждом значении в столбце.

Но мой код не работает, кто-нибудь может помочь с моим кодом?

Вот мой код:

function checkScriptCheck() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  var datePaymentValues = sheet.getRange("A:A").getValues();
  var dateInputValues = sheet.getRange("B:B").getValues();
  var datePaymentRange = sheet.getRange("A:A");
  
  var datePaymentColumn = sheet.getRange("A:A").getColumn();
  var checkResultValueColumn =sheet.getRange("C:C").getColumn()
  
  //cleaning color
  datePaymentRange.setBackground("white");
  
  //check and coloring
  for(i=0;i<datePaymentValues.length;i++){
    for(j=0;j<dateInputValues.length;j++){
      if(datePaymentValues[i][0]==dateInputValues[j][0]){
        sheet.getRange(i+1, datePaymentColumn).setBackground("green");
        sheet.getRange(i+1, checkResultValueColumn).setValue("check");
      };
    };
  };
  
};

Вот ссылка на мой лист: https://docs.google.com/spreadsheets/d/1DVbNaehsTWkiIkzW2nQx7w-ZB8CrPmSP5T5CpU24mbU/edit?usp=sharing

Вот скриншот:

Скриншот листа

Код ScreenShoot

Спасибо.

1 Ответ

0 голосов
/ 28 сентября 2018

Будет проще, если вы создадите карту значений для проверки в первую очередь.

function checkScriptCheck() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Sheet1");

  var datePaymentRange = sheet.getRange("A:A");
  var datePaymentValues = datePaymentRange.getValues();
  var dateInputValues = sheet.getRange("B:B").getValues();

  var datePaymentColumn = datePaymentRange.getColumn();
  var checkResultValueColumn =sheet.getRange("C:C").getColumn()

  //cleaning color
  datePaymentRange.setBackground("white");

  //create map of values to check for
  var inputDates = {};
  for (var i = 1; i < dateInputValues.length; i++) { // Exclude header row
    var inputDate = dateInputValues[i][0];
    if (inputDate != "") { // Exclude blank values
      inputDates[inputDate] = true;
    }    
  }

  //check and coloring
  for (var i = 1; i < datePaymentValues.length; i++) { // Exclude header row
    var paymentDate = datePaymentValues[i][0];
    if (inputDates[paymentDate]) {
      sheet.getRange(i+1, datePaymentColumn).setBackground("#00ff00");
      sheet.getRange(i+1, checkResultValueColumn).setValue("check");
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...