見出し画像

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を活用することで、業務の効率を大幅に向上させることができます。この記事が、あなたのビジネスにおけるデータ分析や報告書作成の効率化に役立つことを願っています。

この記事が気に入ったらサポートをしてみませんか?