【Google Apps Script(GAS)】フォームのチェックボックス(グリッド)を集計する

スポンサーリンク
スポンサーリンク
オンラインGAS講座 開講中!
オンライン無料体験あり!
最短4週間でGASをマスターできる
Google Apps Scriptコース』開講中!

今回は、Google Apps Script(GAS)を使い、Googleフォームのチェックボックス(グリッド)でアンケート集計する方法についてご紹介します。

スポンサーリンク
スポンサーリンク

Googleフォームのチェックボックス(グリッド)でアンケート集計する

まず、下記の画像のようにスプレッドシートとGoogleフォームを用意します。

【Googleフォーム編集画面】

 

【Googleフォーム回答画面】

 

【スプレッドシート】

また、下記のサンプル1のようにスクリプトファイルを作成します。

・サンプル1

function myFunction(e) {

var S_ID = ‘[スプレッドシートIDを入力]’;
var S_NAME = ‘シート1’;
var sh = SpreadsheetApp.openById(S_ID).getSheetByName(S_NAME);

 

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);

};

if(e.namedValues[“好きな果物 [みかん]”] == ”嫌い”){

var num = sh.getRange(3, 2).getValue();
sh.getRange(3, 2).setValue(num + 1);

} else if (e.namedValues[“好きな果物 [みかん]”] == ”普通”) {

var num = sh.getRange(3, 3).getValue();
sh.getRange(3, 3).setValue(num + 1);

} else if (e.namedValues[“好きな果物 [みかん]”] == ”好き”) {

var num = sh.getRange(3, 4).getValue();
sh.getRange(3, 4).setValue(num + 1);

};

if(e.namedValues[“好きな果物 [ぶどう]”] == ”嫌い”){

var num = sh.getRange(4, 2).getValue();
sh.getRange(4, 2).setValue(num + 1);

} else if (e.namedValues[“好きな果物 [ぶどう]”] == ”普通”) {

var num = sh.getRange(4, 3).getValue();
sh.getRange(4, 3).setValue(num + 1);

} else if (e.namedValues[“好きな果物 [ぶどう]”] == ”好き”) {

var num = sh.getRange(4, 4).getValue();
sh.getRange(4, 4).setValue(num + 1);

};

if(e.namedValues[“好きな果物 [いちご]”] == ”嫌い”){

var num = sh.getRange(5, 2).getValue();
sh.getRange(5, 2).setValue(num + 1);

} else if (e.namedValues[“好きな果物 [いちご]”] == ”普通”) {

var num = sh.getRange(5, 3).getValue();
sh.getRange(5, 3).setValue(num + 1);

} else if (e.namedValues[“好きな果物 [いちご]”] == ”好き”) {

var num = sh.getRange(5, 4).getValue();
sh.getRange(5, 4).setValue(num + 1);

};

if(e.namedValues[“好きな果物 [メロン]”] == ”嫌い”){

var num = sh.getRange(6, 2).getValue();
sh.getRange(6, 2).setValue(num + 1);

} else if (e.namedValues[“好きな果物 [メロン]”] == ”普通”) {

var num = sh.getRange(6, 3).getValue();
sh.getRange(6, 3).setValue(num + 1);

} else if (e.namedValues[“好きな果物 [メロン]”] == ”好き”) {

var num = sh.getRange(6, 4).getValue();
sh.getRange(6, 4).setValue(num + 1);

};
}

 

それでは、サンプル1についてご紹介していきますと、

var S_ID = ‘[スプレッドシートIDを入力]’;
var S_NAME = ‘シート1’;
var sh = SpreadsheetApp.openById(S_ID).getSheetByName(S_NAME);

では、スプレッドシートIDやシート名を使い、アンケート結果を集計するためのスプレッドシートを指定しています。

スプレッドシートIDの取得方法などについてはこちらの記事をご覧ください。

【Google Apps Script(GAS)】スプレッドシートを、IDとシート名で指定する
Google Apps Scriptで、スプレッドシートを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】

タイトルとURLをコピーしました