Не срабатывает сравнение 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 не работает.