Нужно объединить ячейки в Google Sheets из значения в другую ячейку - PullRequest
0 голосов
/ 16 мая 2019

У меня есть электронная таблица с большим количеством базовых данных.используя =filter(), я извлекаю то, о чем хочу сообщить, во 2-ю вкладку.У меня данные разбиты на 1/4 в месяц, поэтому столбцы b: e - это январь, F: я - февраль и так далее.=filter извлекает 3 отчета со случайным количеством строк в отчете.таким образом, отчет 1 может быть строками 2-10, отчет 2 может быть строками 11-18, отчет 3 может быть строкой 19-40.В начале каждого отчета есть строка заголовка за январь, февраль, март. Я хочу объединить 4 столбца в строке заголовка, где указаны месяцы, чтобы заголовок месяца охватывал 4 квартала месяца.Поскольку мы не будем знать, какие строки это будут, я предполагаю, что это должен быть скрипт, который ищет «заголовок» в столбце А, но затем объединяет B: E, F: I только для строки заголовка.

Я получу несколько вкладок с разными формулами =filter(), но с одинаковыми заголовками в одних и тех же столбцах.

Я пытаюсь использовать скрипт с mergeAcross(), но не могу понять синтаксис длявыберите только строку с заголовком и объедините 4 строки за месяцы.

Sample of final result

1 Ответ

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

Вот рабочая попытка этого.Я добавил несколько столбцов, так что теперь мои даты начинаются с столбца H вместо столбца D

function mergingMonth(){

  var ss = SpreadsheetApp.getActive();
  var lastRow = ss.getLastRow();
  var range = ss.getRange("A1:A" + lastRow);
  var data = range.getValues();

  for (var r = 0; r < data.length; r++) {
    for (var c = 0; c < 1; c++)
      if (data[r][c] == "header") {
      var row = r+1
          ss.getRange("H"+row+":K"+row).mergeAcross();
          ss.getRange("L"+row+":O"+row).mergeAcross();
          ss.getRange("P"+row+":S"+row).mergeAcross();
          ss.getRange("T"+row+":W"+row).mergeAcross();
          ss.getRange("X"+row+":AA"+row).mergeAcross();
          ss.getRange("AB"+row+":AE"+row).mergeAcross();
          ss.getRange("AF"+row+":AI"+row).mergeAcross();
          ss.getRange("AJ"+row+":AM"+row).mergeAcross();
          ss.getRange("AN"+row+":AQ"+row).mergeAcross();
          ss.getRange("AR"+row+":AU"+row).mergeAcross();
          ss.getRange("AV"+row+":AY"+row).mergeAcross();
          ss.getRange("AZ"+row+":BC"+row).mergeAcross();
          ss.getRange("BD"+row+":BG"+row).mergeAcross();
          ss.getRange("BH"+row+":BK"+row).mergeAcross();
          ss.getRange("BL"+row+":BO"+row).mergeAcross();
      }
  }  
};
...