Без использования скрипта приложений невозможно разделить и упорядочить ответы в форме на несколько листов, как вы, к сожалению, описываете, так как формы Google всегда будут отправлять все ответы на один и тот же лист в каждом наборе.
Используя Apps Script, это можно сделать довольно просто, хотя, если вы знаете, сколько ответов нужно разместить на каждой странице, вы можете написать функцию onFormSubmit()
, привязанную к форме, которая открывает лист непосредственно, используя идентификатор листа и перемещает данные из листа по умолчанию на листы, которые вы хотите.
function onFormSubmit(){
// Open the spreadsheet and each of the sheets to copy from and to
var spreadsheet = SpreadsheetApp.openById("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
var tempSheet = spreadsheet.getSheetByName("DefaultSheetTheFormSumbitsTo")
var page1 = spreadsheet.getSheetByName("Responses 1");
var page2 = spreadsheet.getSheetByName("Responses 2");
var page3 = spreadsheet.getSheetByName("Responses 3");
// Get the first free row in each of the segregated sheets to copy from and to
var page1Range = page1.getRange((page1.getLastRow() + 1), 1, 1, 4);
var page2Range = page2.getRange((page2.getLastRow() + 1), 1, 1, 4);
var page3Range = page3.getRange((page3.getLastRow() + 1), 1, 1, 4);
// Get the values of the data from the default sheet that you want
// to copy to each of the sheets
var page1Data = tempSheet.getRange(tempSheet.getLastRow(), 1, 1, 4);
var page2Data = tempSheet.getRange(tempSheet.getLastRow(), 5, 1, 4);
var page3Data = tempSheet.getRange(tempSheet.getLastRow(), 10, 1, 4);
// Copy the data into the right sheet
page1Range.setValues(page1Data.getValues());
page2Range.setValues(page2Data.getValues());
page3Range.setValues(page3Data.getValues());
// Uncomment this if you want to keep the default sheet clean, though
// this code will run either way
// tempSheet.clear();
}
Вам необходимо убедиться, что .getRanges () указывает на правильный диапазон ответов при каждой отправке формы. Если вы хотите видеть вопросы в первой строке, вам нужно убедиться, что каждый из отдельных листов заполнен в row 1
, так как этот скрипт получает только самый последний ответ.
После того, как это будет сделано, убедитесь, что у вас включена расширенная служба Google Sheets API Advanced в Resources -> Advanced google Services
, и настройте устанавливаемый триггер на странице G Suite Developer Hub Developer Hub , чтобы onFormSubmit()
Функция запускается при типе события «При отправке формы».