Как получить диапазон непустой ячейки в скрипте Google - PullRequest
1 голос
/ 30 мая 2019

Я пытаюсь получить значения строк, у которых нет пустых ячеек в столбце 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, которые не являются пустыми?

1 Ответ

0 голосов
/ 30 мая 2019

Как насчет этого ответа?

Шаблон 1:

  • Имя листа 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)

Шаблон 2:

  • Имя листа 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.

Ссылки:

Если я неправильно понял ваш вопрос, и это был не тот результат, который вы хотите, я прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...