Эффективные способы получения последней непустой ячейки в Google Sheets с помощью скрипта приложения

В Google Таблицах может быть весьма полезно получить последнюю ячейку, содержащую значение в заданном диапазоне. Однако эта задача усложняется, когда диапазон содержит пустые ячейки. В этой статье блога мы рассмотрим различные методы с использованием App Script для эффективного поиска последней непустой ячейки в диапазоне, который может включать пустые ячейки. Каждый метод будет сопровождаться примером кода, демонстрирующим его реализацию.

Методы:

Метод 1: использование getLastRow() и getLastColumn()
Пример кода:

function getLastNonEmptyCell(range) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lastRow = sheet.getLastRow();
  var lastColumn = sheet.getLastColumn();
  var values = sheet.getRange(range).getValues();
  for (var row = lastRow; row > 0; row--) {
    for (var col = lastColumn; col > 0; col--) {
      if (values[row - 1][col - 1] !== '') {
        return sheet.getRange(row, col).getA1Notation();
      }
    }
  }
  return 'No non-empty cell found.';
}

Метод 2: использование обратной итерации
Пример кода:

function getLastNonEmptyCell(range) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var values = sheet.getRange(range).getValues();
  for (var row = values.length - 1; row >= 0; row--) {
    for (var col = values[row].length - 1; col >= 0; col--) {
      if (values[row][col] !== '') {
        var lastRow = row + 1;
        var lastColumn = col + 1;
        return sheet.getRange(lastRow, lastColumn).getA1Notation();
      }
    }
  }
  return 'No non-empty cell found.';
}

Метод 3. Использование обратной итерации с помощью getLastRow() и getLastColumn()
Пример кода:

function getLastNonEmptyCell(range) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lastRow = sheet.getLastRow();
  var lastColumn = sheet.getLastColumn();
  var values = sheet.getRange(range).getValues();
  for (var row = lastRow - 1; row >= 0; row--) {
    for (var col = lastColumn - 1; col >= 0; col--) {
      if (values[row][col] !== '') {
        return sheet.getRange(row + 1, col + 1).getA1Notation();
      }
    }
  }
  return 'No non-empty cell found.';
}

Метод 4. Использование обратной итерации с помощью getDisplayValue()
Пример кода:

function getLastNonEmptyCell(range) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var values = sheet.getRange(range).getDisplayValues();
  for (var row = values.length - 1; row >= 0; row--) {
    for (var col = values[row].length - 1; col >= 0; col--) {
      if (values[row][col] !== '') {
        var lastRow = row + 1;
        var lastColumn = col + 1;
        return sheet.getRange(lastRow, lastColumn).getA1Notation();
      }
    }
  }
  return 'No non-empty cell found.';
}

Это четыре различных метода, которые можно использовать для эффективного получения последней непустой ячейки в Google Таблицах с помощью App Script. В зависимости от ваших конкретных требований и предпочтений вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Включив эти методы в свои сценарии, вы сможете повысить свою продуктивность и эффективно работать с данными в Google Таблицах.