Флажок Google формирует результаты в виде новых строк в листе Google - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь реализовать принятое решение в этом вопросе , и моя форма с флажками автоматически преобразуется в правильный сводный список, как в ОП.

Я не могу заставить фрагмент кода для advancedSplit автоматически запускаться при отправке формы.

Я могу получить advancedSplit, чтобы разбить строку ответов на несколько строк, но только если я введу формулу вручную.

Я пробовал различные комбинации ArrayFormula, используя advancedSplit в 1-й строке листа ответов формы, чтобы автоматическое выполнение разбиения было бесполезным.

есть идеи?

1 Ответ

0 голосов
/ 27 марта 2019

хорошо, у меня это работает, я пропустил код advancedSplit, свернул свой собственный в javascript и привязал его к триггеру onFormSubmit, чтобы он запускался при отправке формы.восстановленные данные записываются на отдельном листе в той же книге.

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

рабочий код выглядит следующим образом:

    function repairFormEntries() {
  // function breaks csv field returned by form submission checkbox field into multiple rows

  var ss = SpreadsheetApp.openById('xxxxxxx');
  var raw_sheet = ss.getSheetByName('Raw responses');
  var repaired_sheet = ss.getSheetByName('Repaired responses');

  var last_rawrow = raw_sheet.getLastRow();  // row number with newly added raw data
  var rawRow = (raw_sheet.getRange(last_rawrow,1,1,6).getValues())[0]; //0th element because only one row of data

  var names = rawRow[0].split(", ");  // split checkbox names into new array called names
  for (var i=0; i < names.length; i++) {
    var name = names[i];
    var repairedRow = [name];  // create new array of data for entry to repaired sheet
    repairedRow = repairedRow.concat(rawRow.slice(1));  // append remainder of original data from 2nd column (element 1)
    repaired_sheet.appendRow(repairedRow); // add to the bottom of the list
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...