Я работаю с таблицей Google и скриптом Google.
У меня проблема с функцией for () в массиве.Его запуск 346 ++ секунд и не удалось.
Мне нужно сопоставить данные в двух столбцах, и сопоставленные данные записываются в той же строке, которая была найдена, но другой столбец, в котором я работаю, содержит почти 30000 строк, и это занимает вечность.
Вот код, который я работаю, я проверил его в меньшем масштабе, и он работал:
function check2dArray() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("2d array");
var dataInputValues = sheet.getRange("A:B").getValues();
var dataCheckValues = sheet.getRange("D:D").getValues();
var writeResultColumn1 = sheet.getRange("F:F").getColumn();
var writeResultColumn2 = sheet.getRange("G:G").getColumn();
//clearing data
sheet.getRange("F:G").clear();
for(i=0;i<dataInputValues.length;i++){
for(j=0;j<dataCheckValues.length;j++){
if(dataInputValues[i][0] == dataCheckValues[j][0] & dataInputValues[i][0] != "" & dataInputValues[i][0] != "#N/A" ) {
sheet.getRange(j+1, writeResultColumn1).setValue(dataInputValues[i][0]);
sheet.getRange(j+1, writeResultColumn2).setValue(dataInputValues[i][1]);
}
}
}
}
Я еще новичок в этом, может быть, есть лучший способ решить?
Вот скриншот моего листа
Скриншот листа
скриншот кода
Вот ссылка на мой лист:
https://docs.google.com/spreadsheets/d/1DVbNaehsTWkiIkzW2nQx7w-ZB8CrPmSP5T5CpU24mbU/edit?usp=sharing