GoogleスプレッドシートとGASでデータ集計を自動化!月次レポート作成の秘訣
はじめに
Google Apps Script(GAS)は、Google Workspaceの各種サービスを自動化したり、カスタマイズしたりするためのスクリプト言語です。GASを使用すると、Googleスプレッドシートのデータを自動的に集計し、月次レポートを作成することが可能になります。本記事では、具体的なコード例を交えて、GASの活用法について詳しく解説します。
1. GASとは何か?
Google Apps Script(GAS)は、Google Workspaceアプリケーションを自動化するためのスクリプト言語です。JavaScriptに基づいており、Googleスプレッドシート、Googleドキュメント、Googleフォームなどのアプリケーションを簡単に操作できます。GASを使用することで、日々の手作業を効率化し、業務の生産性を向上させることができます。
2. スプレッドシートデータの自動集計
以下に、Googleスプレッドシートのデータを自動的に集計するためのGASのコード例を示します。このコードは、スプレッドシートのデータを集計し、特定のキーに基づいて集計結果を生成します。
function aggregateData() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
if (!sheet) {
Logger.log("Sheet1が見つかりません");
return;
}
var data = sheet.getDataRange().getValues();
var aggregatedData = {};
data.forEach(function(row, index) {
if (index === 0) return; // ヘッダー行をスキップ
var key = row[0]; // 集計のキーとなるデータを指定
var value = row[1]; // 集計するデータを指定
if (!key || typeof value !== 'number') {
Logger.log("データが不足しています: 行 " + (index + 1));
return;
}
if (aggregatedData[key]) {
aggregatedData[key] += value;
} else {
aggregatedData[key] = value;
}
});
return aggregatedData;
}
このスクリプトは、Sheet1のデータを読み取り、各キーに対して値を集計します。例えば、売上データなどを集計する際に非常に便利です。
3. 月次レポートの自動作成
集計されたデータをもとに、月次レポートを自動的に作成するためのGASのコード例を以下に示します。
function createMonthlyReport() {
var aggregatedData = aggregateData();
if (!aggregatedData) {
Logger.log("集計データがありません");
return;
}
var reportSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Report');
if (!reportSheet) {
reportSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet('Report');
} else {
reportSheet.clear(); // 既存データをクリア
}
reportSheet.getRange(1, 1).setValue('キー');
reportSheet.getRange(1, 2).setValue('値');
var row = 2; // データを挿入する開始行を指定
for (var key in aggregatedData) {
reportSheet.getRange(row, 1).setValue(key);
reportSheet.getRange(row, 2).setValue(aggregatedData[key]);
row++;
}
}
このスクリプトは、集計されたデータをReportシートに書き込みます。これにより、毎月のレポート作成が自動化され、手間を大幅に削減できます。
4. GASでのエラーハンドリング
GASでの一般的なエラーとその対処法について説明します。例えば、スプレッドシートが見つからない場合や、データが不足している場合など、さまざまなエラーが発生する可能性があります。以下は、エラーハンドリングの例です。
function aggregateData() {
try {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
if (!sheet) throw new Error("Sheet1が見つかりません");
var data = sheet.getDataRange().getValues();
var aggregatedData = {};
data.forEach(function(row, index) {
if (index === 0) return; // ヘッダー行をスキップ
var key = row[0];
var value = row[1];
if (!key || typeof value !== 'number') {
Logger.log("データが不足しています: 行 " + (index + 1));
return;
}
if (aggregatedData[key]) {
aggregatedData[key] += value;
} else {
aggregatedData[key] = value;
}
});
return aggregatedData;
} catch (e) {
Logger.log(e.message);
}
}
このスクリプトは、スプレッドシートが存在しない場合や、データが不足している場合にエラーメッセージを記録します。
5. GASの応用
GASの基本的な使い方をマスターしたら、次は応用編です。例えば、以下のような応用が可能です。
メール通知機能の追加: 集計結果をメールで自動送信する。
外部APIとの連携: 外部サービスからデータを取得し、スプレッドシートに反映する。
function sendAggregatedDataByEmail() {
var aggregatedData = aggregateData();
if (!aggregatedData) {
Logger.log("集計データがありません");
return;
}
var emailBody = "月次レポート:\n\n";
for (var key in aggregatedData) {
emailBody += key + ": " + aggregatedData[key] + "\n";
}
MailApp.sendEmail("recipient@example.com", "月次レポート", emailBody);
}
このスクリプトは、集計結果をメール本文にまとめて送信します。
まとめ
以上、GASを活用したデータ集計と月次レポート作成の自動化について説明しました。GASを活用することで、業務の効率を大幅に向上させることができます。この記事が、あなたのビジネスにおけるデータ分析や報告書作成の効率化に役立つことを願っています。
この記事が気に入ったらサポートをしてみませんか?