Как можно выводить изменения ячейки в гугл таблицах?

У меня есть ячейка, в ней обновляются данные руками.
Мне нужно чтобы на другом листе мне при каждом изменении ячейки этой, создавало запись вида
дата - что изменилось

Пока единственный вариант который приходит на ум это использовать google scripts, но очень не хотелось бы.
  • Вопрос задан
  • 1875 просмотров
Пригласить эксперта
Ответы на вопрос 2
ProgrammerForever
@ProgrammerForever Куратор тега Google Sheets
Учитель, автоэлектрик, программист, музыкант
Нужно отслеживать событие onEdit(event) и писать лог в нужный лист.
function onEdit(event) {
  //Возникает при изменении ячейки
  var ss = event.source.getActiveSheet();//Текущий лист
  var address = event.range.getA1Notation().toUpperCase();//Адрес ячейки
  var row = event.range.getRow();      //Номер строки
  var col = event.range.getColumn();  //Номер столбца
  var newValue = event.value;            //Новое значение
  var oldValue = event.oldValue;        //Старое значение
  
  if (["Лист1","Лист2"].indexOf(ss.getName())==-1) return;	//Указываем на каких листах должен работать скрипт
  //Можно при желании ещё фильтровать по строке/столбцу (row/col), или по старому/новому значению (oldValue/newValue)
  
  var archive = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Архив");

  archive.getRange(archive.getLastRow()+1, 1).setValue(
    formatDateTime(new Date())+" " + "[" + ss.getName() + "!" + address + "] '" + (oldValue==undefined?"":oldValue) + "' >> '" + (newValue==undefined?"":newValue) +"'"
  );
};

function formatDateTime(date) {

  var dd = date.getDate();
  if (dd < 10) dd = '0' + dd;
  var mm = date.getMonth() + 1;
  if (mm < 10) mm = '0' + mm;
  var yy = date.getFullYear() % 100;
  if (yy < 10) yy = '0' + yy;
  
  var hh = date.getHours();
  if (hh < 10) hh = '0' + hh;
  var MM = date.getMinutes();
  if (MM < 10) MM = '0' + MM;
  var ss = date.getSeconds();
  if (ss < 10) ss = '0' + ss;
  
  return dd + '.' + mm + '.' + yy + ' ' + hh + ':'+ MM + ':'+ ss;
}

Вот ссылка на демо
Ответ написан
oshliaer
@oshliaer Куратор тега Google Sheets
Google Products Expert
Пока вариант только со скриптами.

Дополнение, которое я пишу, сможет это сделать, но оно еще готовится к публикации.
Ответ написан
Ваш ответ на вопрос

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

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