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

今回は、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を使って取得するには下記スクリプトを使用します。 SpreadsheetApp.openById() ちなみにスプレ...

今回のシート名は「シート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をコピーしました