@APavlik
Учащийся

Сохранить значения трех столбцов?

Доброго дня, коллеги!
Я на этапе освоения скриптов в гугл таблицах. Нужна помощь профессионалов.

Есть три столбца импортируемых данных из другой таблицы "Месяц". В какой-то момент в ячейке А2 появляется текст "Сентябрь", соответственно, из трех столбцов "Месяц" все значения копируются в три столбца "Сентября", далее в какой-то момент текст в ячейке А2 меняется на "Октябрь", соответственно все данные копируются как значения в три столбца "Октябрь" и так далее...

5f3a847521293607521014.jpeg

Нужен код такого скрипта или совет как такое можно записать через запись скриптов.

Заранее благодарю!
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 2
ProgrammerForever
@ProgrammerForever Куратор тега Google Sheets
Учитель, автоэлектрик, программист, музыкант
1) Получить текущую дату, вычленить оттуда месяц.
2) Получить номера столбцов для записи
3) Перемести данные.
function setData(){  
  /* Боев Григорий (с) 2020 (telegram @ProgrammerForever) */
  
  const FIRST_ROW      = 3;      // Первая строка
  const FIRST_OUT_COL  = 10;      // Первый столбец, Сентябрь
  const FIRST_IN_COL   = 7;       // Первый столбец с исходными данными
  const DATA_WIDTH     = 3;       // Столбцов с данными
  const SHEET_NAME     = "Лист1"; // Имя листа
  
  let now = new Date();
  let month = now.getMonth();//Либо получаете номер месяца (от 0 до 11) анализируя вашу ячеййку
  
  let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);  
  
  let inRange = sheet.getRange(FIRST_ROW, FIRST_IN_COL, sheet.getMaxRows(), DATA_WIDTH);
  let inData = inRange.getValues();
  
  let outRange = sheet.getRange(FIRST_ROW, FIRST_OUT_COL + month*DATA_WIDTH, inData.length, DATA_WIDTH);
  outRange.setValues(inData);
};


Демонстрационная таблица
Ответ написан
Комментировать
PolarBearGG
@PolarBearGG
I know that I know nothing
можно использовать уже готовый аддон
https://gsuite.google.com/marketplace/app/archive_...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы