5 методов получения объединенных значений ячеек в Google Sheets (с примерами кода)

Объединенные ячейки в Google Таблицах могут быть удобным вариантом форматирования, если вы хотите объединить несколько ячеек в одну ячейку большего размера. Однако когда дело доходит до программного получения значений из объединенных ячеек, это может оказаться немного сложной задачей. В этой статье мы рассмотрим пять различных методов с примерами кода о том, как извлечь значения из объединенных ячеек в Google Sheets. Давайте погрузимся!

Метод 1: использование метода getValue()

function getMergedCellValue(sheetName, range) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  var cell = sheet.getRange(range);
  var value = cell.getMergedRanges()[0].getValue();
  return value;
}

Объяснение: Этот метод использует метод getMergedRanges()для получения объединенного диапазона, а затем применяет метод getValue()для получения значения объединенной ячейки.

Метод 2: временное разделение ячеек

function getMergedCellValue(sheetName, range) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  var cell = sheet.getRange(range);
  var isMerged = cell.isPartOfMerge();

  if (isMerged) {
    sheet.unmergeCells(cell);
    var value = cell.getValue();
    sheet.mergeCells(cell);
    return value;
  } else {
    return cell.getValue();
  }
}

Объяснение: Этот метод временно разделяет ячейку, извлекает значение, а затем снова объединяет ячейку, чтобы сохранить исходное форматирование.

Метод 3: использование метода getDisplayValue()

function getMergedCellDisplayValue(sheetName, range) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  var cell = sheet.getRange(range);
  var displayValue = cell.getMergedRanges()[0].getDisplayValue();
  return displayValue;
}

Объяснение: Этот метод использует метод getDisplayValue()для получения отображаемого значения объединенной ячейки, включая любое форматирование или формулы.

Метод 4: доступ к объединенным значениям ячеек через Sheets API (расширенный)
Чтобы использовать этот метод, вам необходимо включить Sheets API и настроить необходимую аутентификацию. Дополнительную информацию см. в документации Google Sheets API.

function getMergedCellValue(sheetId, range) {
  var request = Sheets.Spreadsheets.Values.get(sheetId, range);
  var response = request.valueRanges[0].values;
  var mergedCellValue = response[0][0];
  return mergedCellValue;
}

Объяснение. Этот метод демонстрирует, как использовать API Таблиц для получения объединенных значений ячеек путем выполнения запроса GET к конечной точке API.

Метод 5. Использование службы Google Apps Script Advanced Sheets

function getMergedCellValue(sheetId, range) {
  var request = {
    spreadsheetId: sheetId,
    range: range,
    majorDimension: "ROWS"
  };
  var response = Sheets.Spreadsheets.Values.get(request);
  var mergedCellValue = response.values[0][0];
  return mergedCellValue;
}

Объяснение. Этот метод использует расширенную службу Таблиц в скрипте Google Apps для получения значения объединенной ячейки.

Извлечь значения из объединенных ячеек в Google Таблицах можно различными способами. Мы рассмотрели пять различных подходов: от использования встроенных методов, таких как getValue()и getDisplayValue(), до продвинутых методов, включающих API Sheets и скрипт Google Apps. Выберите метод, который лучше всего соответствует вашим требованиям, и внедрите его в свои проекты, чтобы легко извлекать данные из объединенных ячеек в Google Таблицах.