Задать вопрос
@Qubickkkkkkkkkkkkkkkk

Как настроить проставление даты при изменении соседней ячейки в Google Sheets?

Чуваки, всем доброго дня!
Пишу другу базу данных на основе Гугл таблиц. Поставленная задача: чтобы посещаемость заполнялась через Гугл Формы. По ряду технических решений, посещаемость отправляется в журнал без пометки о времени. Причем, отправляется из одной таблицы в другу, и там с одного листа на другой с помощью Querry. Вероятно, это далеко не самое грамотное решение, но я изучал функционал таблицы по мере того, как делал базу. Поэтому местами решения "не очень".
Вопрос следующий: в листе "Посещаемость" в столбце A должна записываться дата, а в столбце B с помощью Querry дозаписываются ученики. Подскажите, пожалуйста, как мне настроить автозаполнение столбца А с текущей датой по мере того, как заполняется посещаемость? (как только появилась следующая запись в столбце B, в столбце А должна отобразиться дата записи)
  • Вопрос задан
  • 409 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
ProgrammerForever
@ProgrammerForever Куратор тега Google Apps Script
Учитель, автоэлектрик, программист, музыкант
Чтобы дата не менялась, нужно копировать данные скриптом и фиксировать дату копирования.
1) Получить все данные из источника
2) Убрать все строки (по какому-то ключевому столбцу) которые уже есть в приёмнике
3) Добавить дату копирования в каждую из оставшихся после фильтра строк
4) Добавить эти данные в приёмнике
Ответ написан
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
Скрипт для вставки даты и времени при редактировании ячейки в 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());
  }
}


Пример тут https://docs.google.com/spreadsheets/d/1IHDKe-5Tzv...

Оригинал тут https://t.me/GoogleSheets_ru/213
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@iwnch
Попробуй эту формулу
=ARRAYFORMULA(IF(B:B <> "", TODAY(), ""))
вставляй ее в столбец А (там где должна быть дата)
Ответ написан
Ваш ответ на вопрос

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

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