안녕하세요, 나는 한 쌍의 셀을 취하고 스프레드 시트의 모든 워크 시트를 루프하여 동일한 셀 쌍을 찾은 다음 다른 값을 반환하는 사용자 지정 함수를 작성하려고합니다. 그 같은 행.빠르게 여러 시트를 반복하여 데이터를 찾으려면
배경; 시트 0은 검사 일을 기입해야하는 모든 LOA 및 ID 조합 (본질적으로 위치 및 일련 번호)의 마스터 시트입니다. 이러한 검사를 수행하는 사람들은 LOA-ID 조합 + google의 검사 데이터를 사용하여 개인 워크 시트를 업데이트합니다 드라이브. 이 데이터가 추가 될 때마다 자동으로 마스터 시트를 업데이트하려고합니다.
시트는 모두 동일한 형식 (LOA, ID는 & 두 번째 열, 검사 일은 14 번째)에 있습니다. 이것은 내가 의도 한 것을 사용하는 사용자 정의 함수이지만, 고통스럽게 느리게 작동합니다. 어떻게하면 더 빨리 달릴 수 있습니까? 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