Googleフォームで作る無料アンケート集計システム (3/4)
2014年05月01日 11時00分更新
データを集計するには?
集計結果をビジュアルに表示するだけならば、この公開ページをそのまま利用すればよいでしょう。ただしセミナーの開催者がアンケート結果をデータとして活用することを考えると、生のデータをきちんと集計できたほうが後々役に立ちます。
アンケートの結果は、Googleスプレッドシートにまとめられますが、選択したラジオボタンやチェックボックスのテキストがずらりと書き出されているだけで、そのままではデータとしてあまり役に立ちません。
そこで、結果を集計するスクリプトを作ります。セミナーアンケートのデータが保管されているGoogleスプレッドシートを開き、「ツール」メニューから「スクリプトエディタ...」を選んでスクリプトエディタを起動します。
スクリプトエディタを開いたら、上部の「無題のプロジェクト」をクリックし、名前を入力しておきましょう。ここでは「セミナーアンケート(回答)」としておきました。
スクリプトを作成する
スクリプトは、リスト2をスクリプトエディタに記述します。デフォルトで書かれているmyFunction関数は削除してもかまいません。
リスト2
function addUpData() {
var spread = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spread.getSheets()[0];
var colnum = sheet.getLastColumn();
var rownum = sheet.getLastRow();
var sheet2 = spread.insertSheet("アンケート集計");
var rowcounter = 1;
for(var i = 2;i <= colnum;i++){
sheet2.getRange(rowcounter, 1).setValue(sheet.getRange(1, i).getValue());
sheet2.getRange(rowcounter++, 2).setValue('');
var startrow = rowcounter;
var datas = new Object();
for(var j = 2;j <= rownum;j++){
var values = sheet.getRange(j, i).getValue().split(',');
for(var k = 0;k < values.length;k++){
if (datas[values[k]] == undefined){
datas[values[k]] = 1;
} else {
datas[values[k]]++;
}
}
}
for(var key in datas){
sheet2.getRange(rowcounter, 1).setValue(key);
sheet2.getRange(rowcounter++, 2).setValue(datas[key]);
}
var endrow = rowcounter;
sheet2.getRange(rowcounter, 1).setValue('');
sheet2.getRange(rowcounter++, 2).setValue('');
sheet2.getRange(startrow, 1, endrow - startrow, 2).sort({column: 2, ascending: false});
}
}
このスクリプトは、シートにあるデータを読んで、新たに「アンケート集計」というシートを作成し、ラジオボタンやチェックボックスの選択肢ごとの回答を集計した結果を書き出します。回答結果が数値化され、データを利用しやすくなります。