今回は、Google Apps Script(GAS)を使い、Googleフォームのチェックボックス(グリッド)でアンケート集計する方法についてご紹介します。
Googleフォームのチェックボックス(グリッド)でアンケート集計する
まず、下記の画像のようにスプレッドシートとGoogleフォームを用意します。
【Googleフォーム編集画面】
【Googleフォーム回答画面】
【スプレッドシート】
また、下記のサンプル1のようにスクリプトファイルを作成します。
・サンプル1
function myFunction(e) { var S_ID = ‘[スプレッドシートIDを入力]’;
if(e.namedValues[“好きな果物 [りんご]”] == ”嫌い”){ var num = sh.getRange(2, 2).getValue(); } else if (e.namedValues[“好きな果物 [りんご]”] == ”普通”) { var num = sh.getRange(2, 3).getValue(); } else if (e.namedValues[“好きな果物 [りんご]”] == ”好き”) { var num = sh.getRange(2, 4).getValue(); }; if(e.namedValues[“好きな果物 [みかん]”] == ”嫌い”){ var num = sh.getRange(3, 2).getValue(); } else if (e.namedValues[“好きな果物 [みかん]”] == ”普通”) { var num = sh.getRange(3, 3).getValue(); } else if (e.namedValues[“好きな果物 [みかん]”] == ”好き”) { var num = sh.getRange(3, 4).getValue(); }; if(e.namedValues[“好きな果物 [ぶどう]”] == ”嫌い”){ var num = sh.getRange(4, 2).getValue(); } else if (e.namedValues[“好きな果物 [ぶどう]”] == ”普通”) { var num = sh.getRange(4, 3).getValue(); } else if (e.namedValues[“好きな果物 [ぶどう]”] == ”好き”) { var num = sh.getRange(4, 4).getValue(); }; if(e.namedValues[“好きな果物 [いちご]”] == ”嫌い”){ var num = sh.getRange(5, 2).getValue(); } else if (e.namedValues[“好きな果物 [いちご]”] == ”普通”) { var num = sh.getRange(5, 3).getValue(); } else if (e.namedValues[“好きな果物 [いちご]”] == ”好き”) { var num = sh.getRange(5, 4).getValue(); }; if(e.namedValues[“好きな果物 [メロン]”] == ”嫌い”){ var num = sh.getRange(6, 2).getValue(); } else if (e.namedValues[“好きな果物 [メロン]”] == ”普通”) { var num = sh.getRange(6, 3).getValue(); } else if (e.namedValues[“好きな果物 [メロン]”] == ”好き”) { var num = sh.getRange(6, 4).getValue(); }; |
それでは、サンプル1についてご紹介していきますと、
var S_ID = ‘[スプレッドシートIDを入力]’;
var S_NAME = ‘シート1’;
var sh = SpreadsheetApp.openById(S_ID).getSheetByName(S_NAME);
では、スプレッドシートIDやシート名を使い、アンケート結果を集計するためのスプレッドシートを指定しています。
スプレッドシートIDの取得方法などについてはこちらの記事をご覧ください。

今回のシート名は「シート1」としています。
次に、
if(e.namedValues[“好きな果物 [りんご]”] == ”嫌い”){
var num = sh.getRange(2, 2).getValue();
sh.getRange(2, 2).setValue(num + 1);
} else if (e.namedValues[“好きな果物 [りんご]”] == ”普通”) {
var num = sh.getRange(2, 3).getValue();
sh.getRange(2, 3).setValue(num + 1);
} else if (e.namedValues[“好きな果物 [りんご]”] == ”好き”) {
var num = sh.getRange(2, 4).getValue();
sh.getRange(2, 4).setValue(num + 1);
};
ですが、Googleフォームの質問「好きな果物」の「りんご」欄において、
「嫌い」にチェックした場合、セルB2に入力されている数値にプラス1
「普通」にチェックした場合、セルC2に入力されている数値にプラス1
「好き」にチェックした場合、セルD2に入力されている数値にプラス1
する処理になります。
以下、「みかん」から「メロン」まで同じような処理となります。
次に、トリガーの設定ですが、
イベントのソースを選択「スプレッドシートから」
イベントの種類を選択「フォーム送信時」
となります。
下記の画像は、Googleフォーム回答時とスプレッドシート反映後の画像になりますが、
Googleフォームより回答をする度に、自動的にスプレッドシートに集計されていきます。
【Googleフォーム回答1】
【スプレッドシート反映1】
【Googleフォーム回答2】
【スプレッドシート反映2】