GASでCheckboxItemの選択肢をデータ分析に活用!レポート作成を効率化
データ分析におけるレポート作成では、アンケート結果や顧客データなど、さまざまな情報を整理し、可視化する必要があります。Google Apps Script (GAS) の CheckboxItem.setChoiceValues
を活用することで、アンケートフォームの回答選択肢を動的に設定し、データ分析を効率化できます。
CheckboxItem.setChoiceValuesとは?
CheckboxItem.setChoiceValues
は、Google Forms API における CheckboxItem
オブジェクトのメソッドの一つです。このメソッドを使用すると、チェックボックス形式の質問項目の選択肢を、スクリプトを通じて動的に設定できます。例えば、スプレッドシートに保存されたデータを読み込み、その内容をチェックボックスの選択肢として表示するといったことが可能です。
基本的な使い方
基本的な使い方は以下の通りです。
- フォームを取得
- チェックボックスアイテムを取得
setChoiceValues
メソッドで選択肢を設定
function setCheckboxChoices(formId, itemId, choiceValues) {
// フォームを開く
const form = FormApp.openById(formId);
// チェックボックスアイテムを取得
const item = form.getItemById(itemId).asCheckboxItem();
// 選択肢を設定
item.setChoiceValues(choiceValues);
}
データ分析における実装方法
データ分析、特にレポート作成における具体的な実装例を見ていきましょう。
例1: スプレッドシートのデータからレポート項目を作成
スプレッドシートにレポート項目のリストがあり、それをフォームのチェックボックスとして表示する例です。
function createReportForm(spreadsheetId, formTitle) {
// スプレッドシートを開く
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheet = ss.getActiveSheet();
// レポート項目のリストを取得
const reportItems = sheet.getDataRange().getValues().flat().filter(String);
// フォームを作成
const form = FormApp.create(formTitle);
// チェックボックスアイテムを追加
const checkboxItem = form.addCheckboxItem().setTitle('レポート項目を選択してください');
checkboxItem.setChoiceValues(reportItems);
// フォームのURLをログに出力
Logger.log(form.getPublishedUrl());
}
// 使用例
// createReportForm('スプレッドシートID', 'レポート作成フォーム');
例2: 顧客データの分析項目を動的に設定
顧客データを分析する際に、分析項目を動的に変更したい場合があります。例えば、顧客の属性情報(年齢、性別、地域など)をチェックボックスで選択できるようにします。
function createCustomerAnalysisForm(customerData, formTitle) {
// 分析項目を抽出(例:データの最初の行を項目名とする)
const analysisItems = Object.keys(customerData[0]);
// フォームを作成
const form = FormApp.create(formTitle);
// チェックボックスアイテムを追加
const checkboxItem = form.addCheckboxItem().setTitle('分析項目を選択してください');
checkboxItem.setChoiceValues(analysisItems);
// フォームのURLをログに出力
Logger.log(form.getPublishedUrl());
}
// 使用例
// const customerData = [
// { id: 1, age: 30, gender: 'Male', region: 'Tokyo' },
// { id: 2, age: 25, gender: 'Female', region: 'Osaka' }
// ];
// createCustomerAnalysisForm(customerData, '顧客データ分析フォーム');
例3: アンケート結果の選択肢を再利用
過去のアンケート結果から得られた回答の選択肢を、新しいアンケートフォームに再利用する例です。
function reuseSurveyChoices(sourceFormId, targetFormTitle, questionTitle) {
// 元のフォームを開く
const sourceForm = FormApp.openById(sourceFormId);
// 質問項目を取得
const items = sourceForm.getItems();
let choices = [];
for (let i = 0; i < items.length; i++) {
const item = items[i];
if (item.getTitle() === questionTitle && item.getType() === FormApp.ItemType.CHECKBOX) {
choices = item.asCheckboxItem().getChoices().map(choice => choice.getValue());
break;
}
}
// 新しいフォームを作成
const targetForm = FormApp.create(targetFormTitle);
// チェックボックスアイテムを追加
const checkboxItem = targetForm.addCheckboxItem().setTitle(questionTitle);
checkboxItem.setChoiceValues(choices);
// フォームのURLをログに出力
Logger.log(targetForm.getPublishedUrl());
}
// 使用例
// reuseSurveyChoices('元のフォームID', '新しいアンケートフォーム', '興味のある分野を選択してください');
よくある問題とトラブルシューティング
- 選択肢が反映されない:
setChoiceValues
に渡す配列が空でないか、フォームIDやアイテムIDが正しいか確認してください。 - エラーが発生する:APIの制限を超えていないか、権限設定が正しいか確認してください。
- 文字化けが発生する:文字コードが適切に設定されているか確認してください。GASのデフォルトはUTF-8です。
カスタマイズ方法と応用例
- 選択肢の絞り込み:特定の条件に基づいて選択肢を絞り込むことができます。例えば、年齢層や地域などの属性情報に基づいて、表示する選択肢を変更します。
- 選択肢の並び替え:回答状況に応じて選択肢の表示順序を並び替えることができます。例えば、回答頻度の高い選択肢を上位に表示します。
- データの連携:スプレッドシート以外のデータソース(データベース、APIなど)から選択肢を取得することも可能です。
まとめ
GASの CheckboxItem.setChoiceValues
を活用することで、アンケートフォームの選択肢を動的に設定し、データ分析を効率化できます。レポート作成、顧客データ分析、アンケート結果の再利用など、様々な場面で応用可能です。ぜひ、この機能を活用して、データ分析業務を効率化してください。
未経験からSNSデザインを学び、在宅ワークで収入を得たい方へ。
Flap DESIGNは、デザインスキルから案件獲得までを徹底サポートするオンラインスクールです。現役プロがマンツーマンで指導するため、挫折しにくい環境が強み。
さらに、受講期間中に案件を獲得できなかった場合は、売上が立つまで営業サポート期間を延長する「売上保証制度」も魅力です。
副業として月8〜20万円を目指したい会社員の方、出産・育児を機に新しい働き方を求める方、フリーランスとして独立を目指す方など、ライフスタイルに合わせた働き方を実現したい方にぴったりのサービスです。まずは無料相談で詳細を聞いてみませんか?
未経験から始める!SNSデザインスクール