Не срабатывает сравнение google-apps-script

function Statistics() {
  var project = SpreadsheetApp.getActiveSpreadsheet();
  var sheet1 = project.getSheetByName("жилпоселок"); 
  var sheet5 = project.getSheetByName("Статистика");
  var DB1 = sheet1.getRange("A2:K1000").getValues();
  var DB5 = sheet5.getRange("A2:A500").getValues();
  for(i = 0; i < DB1.length; ++i) {
    if (DB1[i][3] == "Конец дня") {
      sheet5.getRange(2,12).setValue(DB1[i][0]); //выводится значение 18.02.2021
      sheet5.getRange(3,12).setValue(DB5[13]); //выводится значение 18.02.2021
      for (a = 0; a < DB5.length; ++a){
        if(DB5[a] == DB1[i][0]){
          sheet5.getRange(3,11).setValue("ok"); //не происходит
        }
      }
    }
  }
}

Не срабатывает второй IF, хотя данные точно между собой совпадают. Если вместо IF ставлю

sheet.getRange(a+2,2).setValue(DB5[a]);

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

Что я делаю не так?


Ответы (2 шт):

Автор решения: Сергей Пряничкин

DB5 - это двумерный массив. А Вы работаете с ним, как с одномерным. ТО есть DB5[13] - это не значение -а одномерный массив. Скорее всего, Вы хотели использовать DB5[13][0]

Update 20.02.2021 И так как выяснилось, что это даты - то через обычное сравнение (==) даты не сравниваются ( так как это объекты ). Обычно сравниваются через getTime()

→ Ссылка
Автор решения: Кирилл Харабардин

Ответ найден. Для того, чтобы работало сравнение дат, формат ячеек должен "Обычный текст". Если формат ячеек автоматический или "дата", то сравнение через IF не работает.

→ Ссылка