クイズに変換されたGoogleフォームから電子メールと合計スコアの両方を取得するには、Googleスクリプト(GAS)が必要です。Googleフォームから平均スコアとメールを受け取るスクリプト(クイズとして)
GAS内では、各質問のスコアを得ることができますが、すべての質問のスコアを取得し、最終的なスコアを平均化する必要があります(各クイズは20問あります)。私はまた、クイズを終えた各人の電子メールが必要です。これらのクイズは機関内で行われ、「電子メールアドレスの収集」が選択されます。
私は何百ものクイズを作っており、すべての成績を1つのスプレッドシートに要約として入れる必要があるので、これは「レスポンススプレッドシート」ではなく必要です。私は何百もの応答スプレッドシートを持ちたくはありません。
私は今のところ以下のとおりですが、各クイズの平均得点をスプレッドシートの電子メールの横に表示しているようです。どんな助けもありがとう。
function getPoints() {
var form = FormApp.openById('ID');
var formResponses = form.getResponses();
var formItems = form.getItems();
for (var i = 0; i < formResponses.length; i++) {
var formResponse = formResponses[i];
var email = formResponse.getRespondentEmail();
/* I need to get all emails from those who responded,
not just one and put them in column A.*/
var s = SpreadsheetApp.openById("ID").getSheetByName("Sheet1");
var sr = s.getRange("A:A").setValues(email);
}
for (var j = 0; j < formItems.length; j++) {
var item = formItems[i];
if (item.getType() === item.getType().TEXT){
var points = item.asTextItem().getPoints();
var itemResponse = formResponse.getGradableResponseForItem(item);
var answer = itemResponse.getResponse();
var sc = itemResponse.getScore();
/* I need to get all the scores, not just one, and then average
them, and them put them in column B, beside the corresponding
email in column A. */
var s = SpreadsheetApp.openById("ID").getSheetByName("Sheet1");
var sr = s.getRange("B:B").setValues(sc);
}
}
}
わかりません。しかし、フォームをすべて同じスプレッドシートに向けることができます。 https://support.google.com/docs/answer/2917686?hl=ja –