Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование их одной таблицы в другую (google script) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Копирование их одной таблицы в другую (google script)
danilmikhailov98 Дата: Понедельник, 20.03.2017, 04:12 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день! Нужно скопировать из таблицы(ответы на гугл форму) в другую таблицу данные с помощью скрипта, с условием:
Ранее эти значения не копировались

Отметить, что значение скопировано.

Папка с общим доступом к файлам https://drive.google.com/open?id=0B0vUuaM1FGMQQ2d1dU5ETXdtMEk


Сообщение отредактировал danilmikhailov98 - Понедельник, 20.03.2017, 16:34
 
Ответить
СообщениеДобрый день! Нужно скопировать из таблицы(ответы на гугл форму) в другую таблицу данные с помощью скрипта, с условием:
Ранее эти значения не копировались

Отметить, что значение скопировано.

Папка с общим доступом к файлам https://drive.google.com/open?id=0B0vUuaM1FGMQQ2d1dU5ETXdtMEk

Автор - danilmikhailov98
Дата добавления - 20.03.2017 в 04:12
Gustav Дата: Понедельник, 20.03.2017, 12:29 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Не совсем понятен технологический процесс. Давайте уточнять.

Во-первых, колонка A таблицы ответов формы всегда используется самим Google для простановки даты/времени записи строки ответов в таблицу (т.н. тайм-штамп). Вы этот тайм-штамп имеете в виду под словом "номер" или есть какая-то другая колонка с номером?

Во-вторых, конечно, нужен пример - таблица Google с общим доступом на просмотр. Если бы пример был сразу, я бы не задавал первого вопроса.


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Понедельник, 20.03.2017, 12:34
 
Ответить
СообщениеНе совсем понятен технологический процесс. Давайте уточнять.

Во-первых, колонка A таблицы ответов формы всегда используется самим Google для простановки даты/времени записи строки ответов в таблицу (т.н. тайм-штамп). Вы этот тайм-штамп имеете в виду под словом "номер" или есть какая-то другая колонка с номером?

Во-вторых, конечно, нужен пример - таблица Google с общим доступом на просмотр. Если бы пример был сразу, я бы не задавал первого вопроса.

Автор - Gustav
Дата добавления - 20.03.2017 в 12:29
danilmikhailov98 Дата: Понедельник, 20.03.2017, 16:26 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Gustav, добавил файлы.
 
Ответить
СообщениеGustav, добавил файлы.

Автор - danilmikhailov98
Дата добавления - 20.03.2017 в 16:26
Gustav Дата: Понедельник, 20.03.2017, 18:34 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
В общем, я так понимаю, по результатам ответов формы Вы хотите видеть в другой таблице фактически "телефонный справочник" своих клиентов, т.е. записи из таблицы ответов, уникальные по комбинации значений в столбцах B, C, D. Такой справочник можно построить при помощи одной-единственной формулы, введенной в ячейку A1 в таблице "Таблица" (лучше на новом пустом листе):
[vba]
Код
=QUERY(UNIQUE(IMPORTRANGE("1Vy_pAwc21S0ey_Fu58SnZHbcEpmAHGIPA_zv_rn3ChE";"B:D"));"where Col1 > 0 or Col1 > '' order by Col3")
[/vba]
Как подобает уважающим себя телефонным справочникам, итоговый уникальный список отсортирован по колонке "ФИО". Понятно, что справочник, основанный на этой формуле, всегда будет синхронизирован с таблицей ответов формы (без необходимости в скриптах и каких-либо отметках об "уже учёте" или "ещё неучёте" той или иной записи таблицы ответов).


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеВ общем, я так понимаю, по результатам ответов формы Вы хотите видеть в другой таблице фактически "телефонный справочник" своих клиентов, т.е. записи из таблицы ответов, уникальные по комбинации значений в столбцах 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
Дата добавления - 20.03.2017 в 18:34
danilmikhailov98 Дата: Понедельник, 20.03.2017, 18:58 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Gustav, предполагается, что копирование данных будет только частью скрипта, и будет происходить смс информирование по столбцам на учете, смс через html запрос я отправлять научился, а вот с копированием данных проблема.
Можете потратить на мою проблему еще немного времени и написать это в виде скрипта?
 
Ответить
СообщениеGustav, предполагается, что копирование данных будет только частью скрипта, и будет происходить смс информирование по столбцам на учете, смс через html запрос я отправлять научился, а вот с копированием данных проблема.
Можете потратить на мою проблему еще немного времени и написать это в виде скрипта?

Автор - danilmikhailov98
Дата добавления - 20.03.2017 в 18:58
Gustav Дата: Понедельник, 20.03.2017, 19:53 | Сообщение № 6
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Цитата danilmikhailov98, 20.03.2017 в 04:12, в сообщении № 1 ()
Ранее эти значения не копировались

Когда "ранее"? Вчера, позавчера, час назад? Какая периодичность работы скрипта? Почему нельзя копировать новую строку сразу после ее вставки? Если можно, то вот вам и "копирование" - читайте себе в другом скрипте сразу таблицу "Таблица" (относитесь к ней как к VIEW в базе данных) и отправляйте свои смс по этому списку.
Цитата danilmikhailov98, 20.03.2017 в 04:12, в сообщении № 1 ()
Отметить, что значение скопировано.

Если пришла повторная заявка от того же клиента и предыдущая уже скопирована, то этой новой сразу писать, что она скопирована?


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Цитата danilmikhailov98, 20.03.2017 в 04:12, в сообщении № 1 ()
Ранее эти значения не копировались

Когда "ранее"? Вчера, позавчера, час назад? Какая периодичность работы скрипта? Почему нельзя копировать новую строку сразу после ее вставки? Если можно, то вот вам и "копирование" - читайте себе в другом скрипте сразу таблицу "Таблица" (относитесь к ней как к VIEW в базе данных) и отправляйте свои смс по этому списку.
Цитата danilmikhailov98, 20.03.2017 в 04:12, в сообщении № 1 ()
Отметить, что значение скопировано.

Если пришла повторная заявка от того же клиента и предыдущая уже скопирована, то этой новой сразу писать, что она скопирована?

Автор - Gustav
Дата добавления - 20.03.2017 в 19:53
danilmikhailov98 Дата: Понедельник, 20.03.2017, 20:15 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Gustav, необходимо чтобы триггер был выставлен на отправку формы. Да, копируем сразу после вставки, но смс это не задача, а побочное действие. Вторая таблица будет дополнена другими данными, поэтому удобнее будет обработать в заявке. Если пришла повторная, то желательно заменить ее во второй таблице.
 
Ответить
СообщениеGustav, необходимо чтобы триггер был выставлен на отправку формы. Да, копируем сразу после вставки, но смс это не задача, а побочное действие. Вторая таблица будет дополнена другими данными, поэтому удобнее будет обработать в заявке. Если пришла повторная, то желательно заменить ее во второй таблице.

Автор - danilmikhailov98
Дата добавления - 20.03.2017 в 20:15
Gustav Дата: Понедельник, 20.03.2017, 20:27 | Сообщение № 8
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Цитата danilmikhailov98, 20.03.2017 в 20:15, в сообщении № 7 ()
необходимо чтобы триггер был выставлен на отправку формы.

Про триггер в таблице на отправку формы

Цитата danilmikhailov98, 20.03.2017 в 20:15, в сообщении № 7 ()
Если пришла повторная, то желательно заменить ее во второй таблице.

Если повторная имеет те же самые значения в колонках B, C, D, то какой смысл в этой замене?

Цитата danilmikhailov98, 20.03.2017 в 20:15, в сообщении № 7 ()
поэтому удобнее будет обработать в заявке.

Что именно? Поставить отметку TRUE, что запись скопирована? Не доверяете триггеру Google? ;) так они сообщат письмом, если будет какой-то сбой


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Цитата danilmikhailov98, 20.03.2017 в 20:15, в сообщении № 7 ()
необходимо чтобы триггер был выставлен на отправку формы.

Про триггер в таблице на отправку формы

Цитата danilmikhailov98, 20.03.2017 в 20:15, в сообщении № 7 ()
Если пришла повторная, то желательно заменить ее во второй таблице.

Если повторная имеет те же самые значения в колонках B, C, D, то какой смысл в этой замене?

Цитата danilmikhailov98, 20.03.2017 в 20:15, в сообщении № 7 ()
поэтому удобнее будет обработать в заявке.

Что именно? Поставить отметку TRUE, что запись скопирована? Не доверяете триггеру Google? ;) так они сообщат письмом, если будет какой-то сбой

Автор - Gustav
Дата добавления - 20.03.2017 в 20:27
danilmikhailov98 Дата: Понедельник, 20.03.2017, 20:59 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Gustav, триггеру доверяю, но "Заявка удволетворена" должен подтвердить менеджер. Поэтому обязательно использование подтверждающих переменных.
При повторной записи:
Если значения совпадают, то их тоже нужно переписать.
В случае перезаписи идентификация идет по номеру.
 
Ответить
СообщениеGustav, триггеру доверяю, но "Заявка удволетворена" должен подтвердить менеджер. Поэтому обязательно использование подтверждающих переменных.
При повторной записи:
Если значения совпадают, то их тоже нужно переписать.
В случае перезаписи идентификация идет по номеру.

Автор - danilmikhailov98
Дата добавления - 20.03.2017 в 20:59
Gustav Дата: Среда, 22.03.2017, 12:43 | Сообщение № 10
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
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" таблицы "Таблица"
  
  sheetTrg.appendRow([e.range.getCell(1, 2).getValue(),
                      e.range.getCell(1, 3).getValue(),
                      e.range.getCell(1, 4).getValue()]);
}
[/vba]
По ощущениям, это примерно 10% от Вашей задачки. Остальные 90% должны включать обработку перезаписи уже существующих строк "Таблицы".

Некоторые мысли у меня есть, попробую еще что-нибудь предложить в течение недели.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение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" таблицы "Таблица"
  
  sheetTrg.appendRow([e.range.getCell(1, 2).getValue(),
                      e.range.getCell(1, 3).getValue(),
                      e.range.getCell(1, 4).getValue()]);
}
[/vba]
По ощущениям, это примерно 10% от Вашей задачки. Остальные 90% должны включать обработку перезаписи уже существующих строк "Таблицы".

Некоторые мысли у меня есть, попробую еще что-нибудь предложить в течение недели.

Автор - Gustav
Дата добавления - 22.03.2017 в 12:43
danilmikhailov98 Дата: Пятница, 24.03.2017, 01:02 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Gustav, Спасибо! Если вы и дальше будете разбираться, я буду Вам премного благодарен!
 
Ответить
СообщениеGustav, Спасибо! Если вы и дальше будете разбираться, я буду Вам премного благодарен!

Автор - danilmikhailov98
Дата добавления - 24.03.2017 в 01:02
Gustav Дата: Среда, 29.03.2017, 17:35 | Сообщение № 12
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
danilmikhailov98, я что-то понаписал, изучайте в прилагаемом текстовом файле.
К сообщению приложен файл: GAS_submit.txt (9.5 Kb)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщениеdanilmikhailov98, я что-то понаписал, изучайте в прилагаемом текстовом файле.

Автор - Gustav
Дата добавления - 29.03.2017 в 17:35
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!