Я пытаюсь получить значения строк, в которых нет пустой ячейки в столбце K.
var spreadsheet = SpreadsheetApp.getActive();
var bigrange = spreadsheet.getSheetByName('sheet').getRange("K2:K").getValues();
// var smallrange= bigrange .filter(String);
for (var i=0; i < smallrange.length; i++) {
var calId = spreadsheet.getSheetByName('sheet').getRange("M" + [i+ 2]).getValue();
}
Приведенный выше код работает, если я не использую .filter(String). Но поскольку мои данные большие, а большая часть диапазона K2: K пуста, я думаю, что мне следует использовать .filter(String).
Каков наилучший способ получить диапазон нескольких ячеек в K2: K, которые не пусты?
Как насчет этого ответа?
sheet
. На этом листе вы хотите получить диапазоны, когда ячейка столбца «K» пуста.Если я правильно понимаю, как насчет этой модификации?
В этом модифицированном сценарии сначала значения извлекаются из "K2:K". Затем из значений извлекаются диапазоны.
var sheetName = "sheet"; // Please set the sheet name here.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);
var values = sheet.getRange("K2:K").getValues();
var ranges = values.map(function(e, i) {return e[0] ? sheetName + "!K" + (i + 2) : ""}).filter(String);
Logger.log(ranges)
sheet
. На этом листе вы хотите получить значения столбца «M», когда ячейка столбца «K» пуста.Из вашего вопроса и сценария я также понял, как указано выше. Если я правильно понимаю, как насчет этой модификации?
В этом модифицированном сценарии сначала значения извлекаются из "A2:M". Затем извлекаются значения столбца «M», когда столбец «K» пуст.
var sheetName = "sheet"; // Please set the sheet name here.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);
var values = sheet.getRange("A2:M").getValues();
var res = values.map(function(e) {return e[10] ? e[12] : ""}).filter(String);
Logger.log(res)
sheet
.Если я неправильно понял ваш вопрос, и это не тот результат, который вы хотите, приношу свои извинения.
Благодарю за ваш ответ. Я рад, что ваша проблема была решена.