Можно ли в Google Forms присваивать уникальные значения каждой строке, вставляемой в электронную таблицу, а также метку времени?
google-sheets
google-forms
Тоби аллен
источник
источник
Ответы:
Вы можете сделать это, добавив триггер скрипта.
Предположим, что ваша текущая форма имеет две колонки
Timestamp
и ответ на один вопрос. Таким образом, у вас есть столбцы A и B, заполненные данными. Предположим, вы хотите, чтобы в столбце C был номер автоматического увеличения.Вы должны сначала перейти к
Tools
>Script Editor
В окне редактора скриптов введите следующий скрипт:
Сохраните скрипт, затем перейдите в
Triggers
меню и выберитеCurrent script's triggers
Заполните раскрывающиеся списки следующим образом:
щелчок
Save
Затем сохраните и закройте окно Google App Script.
Теперь, когда ваша форма отправлена, она заполняет номер строки в столбце C вместе с данными, которые были отправлены через вашу форму.
Если вы хотите изменить столбец, в который сохраняется номер строки, вам нужно изменить эту строку скрипта:
sheet.getRange(row,3).setValue(row);
и измените значение 3 на соответствующий номер индекса столбца.
источник
В дополнение к превосходному ответу Барри, если вы хотите иметь возможность удалять строки и при этом сохранять уникальный идентификатор, у вас может быть статическая ячейка, которая поддерживает счет. Затем вы можете использовать это число и увеличивать его при каждой новой записи в таблице.
Таким образом, модификация будет заключаться в том, чтобы сохранить номер где-нибудь в вашей электронной таблице («M1» в приведенном ниже коде) и изменить код так, чтобы он выглядел следующим образом:
Опять же, измените вторую последнюю строку, чтобы изменить место, где находится ваш идентификатор.
источник
Опираясь на оба предыдущих ответа (от Барри и Дэнни):
Предполагая, что столбец идентификатора - это столбец А. Выберите ячейку «Следующий идентификатор» и установите для нее следующую формулу (предполагая, что она находится в «P1»):
Создайте сценарий с помощью редактора сценариев в меню «Инструменты» и вставьте следующее:
Добавьте триггер сценария с помощью меню «Триггеры» в редакторе сценариев:
источник
В дополнение к ответам выше - это решение не требует дополнительной ячейки электронной таблицы.
Вы можете использовать встроенные обработчики событий для отправки формы, чтобы получить уникальный идентификатор. Поскольку электронная таблица является просто местом назначения формы, удаление строки фактически не удаляет ответ. С этим в мыслях...
РЕДАКТИРОВАТЬ: устранена необходимость в идентификаторе и устранены проблемы с форматированием даты.
источник
getUniqueID
функцию можно значительно упростить, просто возвращая длину ответов до настоящего времени (это то, что логика этой функции, описанная выше, делает довольно запутанным образом). В основном, одна строка в функции:return getConnectedForm().getResponses().length;
Это производная от других ответов, но она может быть полезна для будущих пользователей.
Основное отличие состоит в том, что он будет обновлять столбец 1 в активной строке при редактировании этой строки, но только если еще не указано значение.
Вы должны установить триггер, как указано в других ответах на редактирование.
источник
Для "Можно ли в форме Google дать уникальное значение каждой строке, которую она вставляет в электронную таблицу, а также метку времени?" также допускается удаление строки в листе ответов формы перед добавлением следующего ответа без дублирования значений, это должно работать:
источник