Привет, я пытаюсь написать пользовательскую функцию, которая берет пару ячеек, перебирает все листы в электронной таблице, чтобы найти идентичную пару совпадений, и возвращает другое значение из эта же строка.Быстрое перемещение по нескольким листам для поиска данных
Фон; лист 0 является основным листом всех комбинаций LOA и ID (по существу, местоположения и серийного номера #), которые должны иметь заполненные контрольные даты. Люди, которые проводят эти проверки, обновляют свои личные листы с помощью комбинации LOA-ID + данные проверки в google водить машину. Я пытаюсь автоматически обновлять мастер-лист при каждом добавлении этих данных.
Листы все соответствуют одному и тому же формату (LOA, ID в 1-ом & 2-я колонны, дата осмотра в 14-м). Это пользовательская функция im, использующая то, что я намереваюсь, но работает очень медленно. Как сделать этот запуск быстрее? Требуется несколько секунд PER CELL; Мне нужно запустить это через 10k + ячеек.
function findMatch(LOA,GRID) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var returnDate = "not found"
for (var sheetNum = 1; sheetNum < sheets.length; sheetNum++){
var ws = ss.getSheets()[sheetNum]
for (var count = 1; count<ws.getLastRow(); count++){
if (ws.getRange(count,1,1,1).getValues()==LOA && ws.getRange(count,2,1,1).getValues()==GRID)
{
returnDate = ws.getRange(count,14,1,1).getValue()
break;
}
else
{
}
}
}
Logger.log(returnDate)
return returnDate