хорошо, у меня это работает, я пропустил код 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
}
}