Скрипт для вставки даты и времени при редактировании ячейки в Google Таблицах
Инструкция

Скрипт для вставки даты и времени при редактировании ячейки в Google Таблицах

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

Задача

Иногда возникает необходимость автоматически записывать дату и время внесения изменений в определенные ячейки. Это может быть полезно для отслеживания активности, ведения журналов изменений и обеспечения контроля над обновлениями данных.

Когда это полезно

  1. Отслеживание изменений: Ведение журнала изменений данных для аудита или анализа.
  2. Контроль сроков выполнения: Отслеживание времени выполнения задач или обновлений информации.
  3. Повышение прозрачности: Учет времени и даты изменений для повышения прозрачности и ответственности сотрудников.

Решение

Для автоматического добавления даты и времени при редактировании ячеек используем скрипт 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() может быть только одна!

Надеемся, что этот Скрипт будет вам полезен.

Нужна помощь с автоматизацией?

Разработаем решение под ваши задачи.

Написать в Telegram

Подписывайтесь — делимся скриптами, кейсами и лайфхаками