Добрый день! Нужно скопировать из таблицы(ответы на гугл форму) в другую таблицу данные с помощью скрипта, с условием: Ранее эти значения не копировались
Добрый день! Нужно скопировать из таблицы(ответы на гугл форму) в другую таблицу данные с помощью скрипта, с условием: Ранее эти значения не копировались
Не совсем понятен технологический процесс. Давайте уточнять.
Во-первых, колонка A таблицы ответов формы всегда используется самим Google для простановки даты/времени записи строки ответов в таблицу (т.н. тайм-штамп). Вы этот тайм-штамп имеете в виду под словом "номер" или есть какая-то другая колонка с номером?
Во-вторых, конечно, нужен пример - таблица Google с общим доступом на просмотр. Если бы пример был сразу, я бы не задавал первого вопроса.
Не совсем понятен технологический процесс. Давайте уточнять.
Во-первых, колонка A таблицы ответов формы всегда используется самим Google для простановки даты/времени записи строки ответов в таблицу (т.н. тайм-штамп). Вы этот тайм-штамп имеете в виду под словом "номер" или есть какая-то другая колонка с номером?
Во-вторых, конечно, нужен пример - таблица Google с общим доступом на просмотр. Если бы пример был сразу, я бы не задавал первого вопроса.Gustav
В общем, я так понимаю, по результатам ответов формы Вы хотите видеть в другой таблице фактически "телефонный справочник" своих клиентов, т.е. записи из таблицы ответов, уникальные по комбинации значений в столбцах B, C, D. Такой справочник можно построить при помощи одной-единственной формулы, введенной в ячейку A1 в таблице "Таблица" (лучше на новом пустом листе): [vba]
Код
=QUERY(UNIQUE(IMPORTRANGE("1Vy_pAwc21S0ey_Fu58SnZHbcEpmAHGIPA_zv_rn3ChE";"B:D"));"where Col1 > 0 or Col1 > '' order by Col3")
[/vba] Как подобает уважающим себя телефонным справочникам, итоговый уникальный список отсортирован по колонке "ФИО". Понятно, что справочник, основанный на этой формуле, всегда будет синхронизирован с таблицей ответов формы (без необходимости в скриптах и каких-либо отметках об "уже учёте" или "ещё неучёте" той или иной записи таблицы ответов).
В общем, я так понимаю, по результатам ответов формы Вы хотите видеть в другой таблице фактически "телефонный справочник" своих клиентов, т.е. записи из таблицы ответов, уникальные по комбинации значений в столбцах B, C, D. Такой справочник можно построить при помощи одной-единственной формулы, введенной в ячейку A1 в таблице "Таблица" (лучше на новом пустом листе): [vba]
Код
=QUERY(UNIQUE(IMPORTRANGE("1Vy_pAwc21S0ey_Fu58SnZHbcEpmAHGIPA_zv_rn3ChE";"B:D"));"where Col1 > 0 or Col1 > '' order by Col3")
[/vba] Как подобает уважающим себя телефонным справочникам, итоговый уникальный список отсортирован по колонке "ФИО". Понятно, что справочник, основанный на этой формуле, всегда будет синхронизирован с таблицей ответов формы (без необходимости в скриптах и каких-либо отметках об "уже учёте" или "ещё неучёте" той или иной записи таблицы ответов).Gustav
Gustav, предполагается, что копирование данных будет только частью скрипта, и будет происходить смс информирование по столбцам на учете, смс через html запрос я отправлять научился, а вот с копированием данных проблема. Можете потратить на мою проблему еще немного времени и написать это в виде скрипта?
Gustav, предполагается, что копирование данных будет только частью скрипта, и будет происходить смс информирование по столбцам на учете, смс через html запрос я отправлять научился, а вот с копированием данных проблема. Можете потратить на мою проблему еще немного времени и написать это в виде скрипта?danilmikhailov98
Когда "ранее"? Вчера, позавчера, час назад? Какая периодичность работы скрипта? Почему нельзя копировать новую строку сразу после ее вставки? Если можно, то вот вам и "копирование" - читайте себе в другом скрипте сразу таблицу "Таблица" (относитесь к ней как к VIEW в базе данных) и отправляйте свои смс по этому списку.
Когда "ранее"? Вчера, позавчера, час назад? Какая периодичность работы скрипта? Почему нельзя копировать новую строку сразу после ее вставки? Если можно, то вот вам и "копирование" - читайте себе в другом скрипте сразу таблицу "Таблица" (относитесь к ней как к VIEW в базе данных) и отправляйте свои смс по этому списку.
Gustav, необходимо чтобы триггер был выставлен на отправку формы. Да, копируем сразу после вставки, но смс это не задача, а побочное действие. Вторая таблица будет дополнена другими данными, поэтому удобнее будет обработать в заявке. Если пришла повторная, то желательно заменить ее во второй таблице.
Gustav, необходимо чтобы триггер был выставлен на отправку формы. Да, копируем сразу после вставки, но смс это не задача, а побочное действие. Вторая таблица будет дополнена другими данными, поэтому удобнее будет обработать в заявке. Если пришла повторная, то желательно заменить ее во второй таблице.danilmikhailov98
Gustav, триггеру доверяю, но "Заявка удволетворена" должен подтвердить менеджер. Поэтому обязательно использование подтверждающих переменных. При повторной записи: Если значения совпадают, то их тоже нужно переписать. В случае перезаписи идентификация идет по номеру.
Gustav, триггеру доверяю, но "Заявка удволетворена" должен подтвердить менеджер. Поэтому обязательно использование подтверждающих переменных. При повторной записи: Если значения совпадают, то их тоже нужно переписать. В случае перезаписи идентификация идет по номеру.danilmikhailov98
danilmikhailov98, следующая функция, оформленная как триггер, добавляет (пока безусловно) поля новой записи из таблицы формы "Заявки" в новую запись в конец листа таблицы "Таблица": [vba]
Код
function onSubmit(e) {
var rowNew = e.range.getRow(); // номер добавляемой строки в таблице ответов формы e.range.getSheet().getRange("E"+rowNew).setValue(true); // отметка "Заявка перенесена"
var ssTarget = SpreadsheetApp.openById("страшенный_Id_таблицы_Google_из_44_символов_"); var sheetTrg = ssTarget.getSheetByName('Лист1'); // лист "Лист1" таблицы "Таблица"
[/vba] По ощущениям, это примерно 10% от Вашей задачки. Остальные 90% должны включать обработку перезаписи уже существующих строк "Таблицы".
Некоторые мысли у меня есть, попробую еще что-нибудь предложить в течение недели.
danilmikhailov98, следующая функция, оформленная как триггер, добавляет (пока безусловно) поля новой записи из таблицы формы "Заявки" в новую запись в конец листа таблицы "Таблица": [vba]
Код
function onSubmit(e) {
var rowNew = e.range.getRow(); // номер добавляемой строки в таблице ответов формы e.range.getSheet().getRange("E"+rowNew).setValue(true); // отметка "Заявка перенесена"
var ssTarget = SpreadsheetApp.openById("страшенный_Id_таблицы_Google_из_44_символов_"); var sheetTrg = ssTarget.getSheetByName('Лист1'); // лист "Лист1" таблицы "Таблица"