Я пойду лысый, почесывая голову, поэтому мне действительно нужно столько помощи, сколько я могу получить, пожалуйста.Могу ли я также узнать у вас тоже, а не получить решение, которое я не понимаю.
У меня есть appScript, который объединяет подстроки и переменную инкримации, которые вместе приводят к комплексному запросу для анализа данных транзакции для каждогоключевые слова референс-кода «план счетов», а затем соответственно выводит «закодированные» совпадающие транзакции.
Я проверил запрос, инкриминируя его вручную и накладывая на отдельный лист WIP_Query:
={QUERY(Transactions, "Select A, B, C, D, P, "&COA!$B21&" where D MATCHES '\s?.*?\s?"&
TEXTJOIN("\s?.*\s?|",True,Indirect("AutoCodeKeys!"&COA!$C21&"2:"&COA!$C21))&"\s?.*?\s?'LABEL "&COA!$B21&" 'CODE'",1);
QUERY(Transactions, "Select A, B, C, D, P, "&COA!$B22&" where D MATCHES '\s?.*?\s?"&
TEXTJOIN("\s?.*\s?|",True,Indirect("AutoCodeKeys!"&COA!$C22&"2:"&COA!$C22))&"\s?.*?\s?'LABEL "&COA!$B22&" 'CODE'",1)}
(я тестировал больше в стеке, чем опубликовано выше)
Он отлично работает, но когда я пробую один из инкриминированных appScript, я получаю:
"Ошибка: в ARRAY_LITERAL для литерала массива отсутствовали значения для одной или нескольких строк."
Мне кажется, что автоматический запрос показывается мне нормально (я иду косоглазо))
function incrimentingQuerystring() {
Logger.clear();
var app = SpreadsheetApp.getActive();
var targetSheet = app.getSheetByName("scriptedQuery");
var targetCell = targetSheet.getRange(2, 1);
var refSheet = app.getSheetByName("ref");
var query;
//buildQueryFromSubStrings:
var beginString = ("={"); // Only to be added to first iteration.
var s1 = refSheet.getRange(3, 9).getValue();
var s2 = refSheet.getRange(4, 9).getValue();
var s3 = refSheet.getRange(5, 9).getValue();
var s4 = refSheet.getRange(6, 9).getValue();
var s5 = refSheet.getRange(7, 9).getValue();
var endString = (";"); // To be deducted from last iteration *************HOW????????*****************
//Get Chart Of Account Reference Codes to Query:
var data = app.getSheetByName("COA").getDataRange().getValues();
//Incriment though each accont in Chart of Acconts Sheet.
for (var i = 6; i < data.length; i++) {
var queryIteration = (s1 + (i - 1) + s2 + (i - 1) + s3 + (i - 1) + s4 + (i - 1) + s5 + endString);
//Logger.log(queryIteration);
var thisIteration = (queryIteration + thisIteration);
//Logger.log(thisIteration);
}
//Logger.log(i);
//******My attempt at removing var endString****
var finalIteration = (s1 + ("5") + s2 + ("5") + s3 + ("5") + s4 + ("5") + s5 + "}");
//Logger.log(finalIteration) // This seems correct but is preceded by "undefined" when added to query below:
var query = (beginString + thisIteration + finalIteration); // results "undefined" being added prior to finalIteration.
//Logger.log(query); //Runs out of space to see error. Error can be seen in targetCell in spreadsheet.
targetCell.setValue(query);
}
LinkToSpreadSheet