Я новичок в скрипте Google Apps.Я создал скрипт Google Apps для альтернативы vlookup (я хочу статические данные по причинам).
Я создал функцию, которая может обмениваться данными между Листом 1 «Основной лист» (ввод пользователя) и Листом 2 «Лист запроса» (содержит результаты данных).
Предполагается сравнить mainSheet ColW с querySheet ColA
Если mainSheet ColW совпадает, замените значение в mainSheet ColX на значение querySheet ColB в соответствующей строке.
Пример, если mainSheet Col W2 равен «123», а querySheet Col A5 равен «123», вставьте значение из querySheet Col B5 в mainSheet Col X2
Это для сравнения входных данных, предоставленных пользователем сданные, которые обновляются в бэкэнде после X периода времениЧтобы уменьшить необходимость постоянного просмотра этих данных, запрос выполняется с интервалами.Пользовательский лист заполняется результатами.
function match(){
//Sheet with the query outputs
var querySheet = SpreadsheetApp.openById("SHEETID123456789"); // query results are dumped in this doc
var querySheetTab = querySheet.getRange("query!A1:F"); //tab with the results
//Main sheet to have query data pasted
var mainSheet = SpreadsheetApp.getActiveSpreadsheet(); //current worksheet
var mainSheetTab = mainSheet.getRange("USERSHEET!W2:X"); //Tab and range of the data. W contains a number. X is where the results of B from the querySheet go
//values to compare
var mainSheetVal = mainSheet.getSheetByName('USERSHEET').getRange('W2:W').getValues(); //values to match against query results
var mainSheetComp = mainSheet.getSheetByName('USERSHEET').getRange('W2:W'); //numbers to match against query results
var mainSheetSet = mainSheet.getSheetByName('USERSHEET').getRange('X2:X'); //Where values get pasted.
var getValQS = querySheet.getSheetByName('query').getRange('A1:B').getValues(); //query results includes both objects values
var valQS = querySheet.getSheetByName('query').getRange('A1:A'); // query results
var valSet = querySheet.getSheetByName('query').getRange('B2:B'); //desired values to paste.
var output = [];
for (var i = 0; i < mainSheetVal.length; i++) {
mainSheetSet.setValue(getValQS[i][0]);
SpreadsheetApp.flush();
Utilities.sleep(10000);
if (mainSheetComp.getValue() == '') {
output.push([getValQS[i][0]]);
}
}
mainSheet.getRange(2, 12, output.length, 2).setValues(output);
}
Этот лист в конечном итоге заменяет X2: X значением A1, затем A2, и продолжает циклически проходить даже с пустыми ячейками.Я не смог настроить правильное сравнение.