Скрипт для вставки даты и времени при редактировании ячейки в Google Таблицах
Добра и здоровья! Сегодня, после очередного запроса от читателей нашего чата, я решил оформить и продемонстрировать Скрипт для Гугл Таблиц, который позволяет отслеживать изменения в ячейках и проставлять рядом дату и время этого изменения.
Задача
Иногда возникает необходимость автоматически записывать дату и время внесения изменений в определенные ячейки. Это может быть полезно для отслеживания активности, ведения журналов изменений и обеспечения контроля над обновлениями данных.
Когда это полезно
- Отслеживание изменений: Ведение журнала изменений данных для аудита или анализа.
- Контроль сроков выполнения: Отслеживание времени выполнения задач или обновлений информации.
- Повышение прозрачности: Учет времени и даты изменений для повышения прозрачности и ответственности сотрудников.
Решение
Для автоматического добавления даты и времени при редактировании ячеек используем скрипт Google Apps Script.
/**
* Триггер события EDIT
*
* @param {GoogleAppsScript.Events.SheetsOnEdit} e
*/
function onEdit(e){
// Определяем имя листа, на котором обрабатываем событие редактирования ячейки
const watchingSheet = 'Добавить дату в строке при изменении ячейки';
// Определяем индекс столбца в котором обрабатываем событие редактирования ячейки
const watchingColIndex = 6;
// Определяем индекс столбца в который будем записывать дату/время
const targetColIndex = 8;
// Из объекта события получаем измененный диапазон и из диапазона лист, на котором он расположен
const sheet = e.range.getSheet();
// Проверяем, что имя листа, на котором произошло событие соответствует указанному в переменной `targetSheetName`
if (sheet.getName() !== watchingSheet) {
// И, если событие произошло на другом листе, то прекращаем выполнение функции
return;
}
// Определяем индекс столбца в котором произошло событие
const column = e.range.getColumn();
// Проверяем, в нужном ли столбце произошло событие
// и соответствует ли новое значение нужному нам
// проверку на значение можно убрать
// для этого нужно удалить этот фрагмент: "&& e.value === 'Готово'"
if (column == watchingColIndex && e.value === 'Готово') {
// Устанавливаем дату и время в ячейку на пересечении строки, в которой было изменение
// и столбца, указанного в переменной `targetColIndex`
e.source.getActiveSheet().getRange(e.range.getRow(), targetColIndex).setValue(new Date());
}
}
Каждая переменная и действие в скрипте сопровождаются подробными комментариями, поэтому, при внимательном их прочтении, разобраться не составит труда.
Теперь при каждом вводе слова “Готов” в столбце F, в соответствующей строке столбца H будет автоматически записываться текущая дата и время.
Как это работает
Этот скрипт отслеживает изменения в указанном столбце и автоматически добавляет текущие дату и время в другой столбец.
– onEdit(e) — триггерная функция, которая срабатывает при каждом изменении в таблице.
Пример в редакторе Скриптов Таблицы чата №15 в файле “Добавить дату в строке при изменении ячейки”
На всякий случай, вот инструкция как попасть в редактор скриптов
Как использовать
Просто скопировать код и добавить его в редактор скриптов своей Таблицы
Обратите внимание! Триггерная функция onEdit() может быть только одна!
Надеемся, что этот Скрипт будет вам полезен.
Подписывайтесь — делимся скриптами, кейсами и лайфхаками