Анализ данных Google Forms - PullRequest
       12

Анализ данных Google Forms

0 голосов
/ 24 октября 2018

У меня есть форма Google с одним вопросом.

Сколько воды вы пьете в день?

  1. 5 унций
  2. 10 унций

Когда пользователь отправит форму, я хочу получить ответ и проверим, если ее 5 унций, я хочу сохранить результат как неудачный, а если ответ 10, я хочу сохранить результат передачи на листе Excel(вместе с ответом пользователя с вопросом (лист Google)) и отправьте этот лист обратно пользователю.

Я попробовал его с помощью редактора сценариев листа Google и все, но я не смог найти полныйпример, подробно объясняющий этот полный процесс.

1 Ответ

0 голосов
/ 24 октября 2018

Я вижу два подхода к этому.

Подход 1 - API форм + Триггер на основе времени
Вы можете настроить Google App Script (GAS) и использовать формыAPI для получения ответов из формы через определенный период времени.Затем вы можете обработать ответы, например, просмотрев все ответы, которые были отправлены с момента последнего запуска GAS, и принять решения на основе этих ответов, в том числе создать электронную таблицу, поделиться ею с отправителем, а затем отправить электронное письмо сURL для отправителя.

Фрагмент из GAS

  var myForm = FormApp.openById(formId);

//load timeLastRun loaded from a e.g. script property using PropertiesService or calculate the time one time-period previous

 var responses = myForm.getResponses(timeLastRun);  

  for (var response in responses){
     var question = myForm.getItemById(itemId);

     var answer = responses[response].getResponseForItem(question) .getResponse();
     var thisSubmitter = responses[response].getRespondentEmail();

     // do some decision making

  }

Вы можете получить идентификаторы элемента, выполнив что-то вроде

function getIds(){
    var myForm = FormApp.openById(formId);
    var items = myForm.getItems();
    for (var item in items){
      Logger.log(items[item].getId() + " " +items[item].getTitle());
    }
}

Подход 2 - Google Sheet+ OnSubmit Trigger
Сохраните все в Google Sheet и отфильтруйте пропуски (например, «правильные» ответы) на другой вкладке, используя, например, QUERY () или FILTER ().

Создайте ГАЗ, который запускается для запуска каждой отправки формы.Затем выполните принятие решения на основе каждого отдельного представления формы.Вы можете получить отправленные данные формы, либо сославшись на объект события e , либо просто каждый раз захватывая последнюю строку данных формы в электронной таблице.

Фрагмент кода:

function onSubmit(e){
  var response = e.values;

  var thisSubmitter = response[1]; // if the 2nd column contains the submitter's email address
  var answer = response[2|  // if the 3rd column in the spreadsheet contains the answer you're looking for
  // do some decision making

}

В этом подходе вы должны сопоставить свои переменные с порядком ответов или использовать e.NamedValues[question], чтобы явно выбрать значение, которое вы хотите использовать.

Часть принятия решений
Вы упомянули, что хотите создать еще один лист на основе представленного ответа и отправить письмо отправителю.В этом случае вам потребуется использовать службу SpreadsheetApp, чтобы создать другой лист и заполнить его данными, которые вы хотите передать, а затем использовать службу GmailApp для отправки по электронной почте отправителю.Если вы опубликуете попытку, то сообщество, скорее всего, поможет вам уточнить ее, но я думаю, что информации в этом ответе достаточно, чтобы вы начали.

...