【保存版】GASでデータ抽出自動化ツールを作る方法|初心者でもできるステップバイステップ解説!

「毎回スプレッドシートから欲しいデータだけ抜き出すのが面倒…」
「条件ごとにデータをまとめて自動で管理したい!」

そんなあなたにぴったりなのが、Google Apps Script(GAS)を使ったデータ抽出自動化ツールです。

この記事では、初心者向けに
「GASで効率的にデータ抽出ツールを作る方法」を
サンプルコード付きでわかりやすく解説します!

これを読めば、
面倒な手作業ゼロ、スプレッドシート管理が驚くほどラクになります!


1. なぜGASでデータ抽出を自動化するべきなのか?

スプレッドシートにデータが蓄積していくと、手作業では…

  • 条件でフィルタしてコピペ

  • 必要データだけ別シートに抽出

  • 毎回ミスが発生するリスク

こんなストレスが積み重なります。

GASを使えば、

  • 任意の条件で瞬時にデータ抽出

  • 抽出データを別シート・別ファイルに整理

  • 定期的に自動実行して最新データを維持

が可能になり、
あなたの作業時間とストレスが大幅に削減されます!


2. 【準備編】必要なもの

  • Googleアカウント

  • Googleスプレッドシート(データ格納用)

  • Google Apps Script(GAS:標準搭載)

すべて無料!
しかもブラウザだけで完結するので、すぐに始められます。


3. 【設計編】GASデータ抽出ツールの全体像をイメージしよう

まず、どんな流れでデータ抽出を自動化するか整理しましょう。

■ 基本フロー

  1. 元データシートからすべてのデータを取得

  2. 条件に一致するデータだけを抽出

  3. 抽出データを別シートや新ファイルに出力

これだけで、毎回手間をかけずに必要なデータだけ管理できるようになります!


4. 【基本編】GASでデータ抽出ツールを作ってみよう!

それでは実際に、動くサンプルを作ってみます!


ステップ① Apps Scriptエディタを開く

Googleドライブでスプレッドシートを開き、
「拡張機能」→「Apps Script」→「新しいプロジェクト作成」。


ステップ② シンプルな抽出スクリプトを書く

サンプル:特定の「ステータス」が「完了」のデータだけ抽出

function extractCompletedTasks() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sourceSheet = ss.getSheetByName('元データ');
  const targetSheet = ss.getSheetByName('抽出データ') || ss.insertSheet('抽出データ');
  
  const data = sourceSheet.getDataRange().getValues();
  
  const extractedData = [];
  extractedData.push(data[0]); // ヘッダーをコピー
  
  for (let i = 1; i < data.length; i++) {
    if (data[i][3] === '完了') { // 4列目がステータス列
      extractedData.push(data[i]);
    }
  }
  
  targetSheet.clearContents();
  targetSheet.getRange(1, 1, extractedData.length, extractedData[0].length).setValues(extractedData);
}

これを実行すると、

  • 「ステータス」列が「完了」の行だけ

  • 「抽出データ」シートにコピー

してくれます!


5. 【応用編】さらに便利な機能を追加してみよう!


✅ 日付フィルタを追加する(例:今週分だけ抽出)

function extractThisWeeksTasks() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sourceSheet = ss.getSheetByName('元データ');
  const targetSheet = ss.getSheetByName('抽出データ') || ss.insertSheet('抽出データ');
  
  const data = sourceSheet.getDataRange().getValues();
  const today = new Date();
  const startOfWeek = new Date(today.setDate(today.getDate() - today.getDay() + 1)); // 月曜日
  const endOfWeek = new Date(startOfWeek);
  endOfWeek.setDate(startOfWeek.getDate() + 6);
  
  const extractedData = [];
  extractedData.push(data[0]); // ヘッダー
  
  for (let i = 1; i < data.length; i++) {
    const taskDate = new Date(data[i][1]); // 2列目が日付列
    if (taskDate >= startOfWeek && taskDate <= endOfWeek) {
      extractedData.push(data[i]);
    }
  }
  
  targetSheet.clearContents();
  targetSheet.getRange(1, 1, extractedData.length, extractedData[0].length).setValues(extractedData);
}

これで、今週のデータだけ自動抽出できます!


✅ 複数条件を組み合わせる(例:完了かつ今週分)

複数条件は&&で簡単に組み合わせ可能!

if (data[i][3] === '完了' && taskDate >= startOfWeek && taskDate <= endOfWeek)

6. 【運用編】自動化をもっと強化するために


✔️ トリガー設定で完全自動化

毎日朝9時に最新データを抽出するように、
「時間主導型トリガー」を設定すれば、完全放置でデータが整理されます!


✔️ 抽出結果を自動でPDF出力

GASとGoogleドキュメント連携で、抽出結果をPDFにして自動保存することも可能!


✔️ 抽出結果をメール添付送信

抽出したデータをそのままGmail経由でメール送信する運用もできます!


7. まとめ|GASでデータ抽出ツールを作れば、作業が圧倒的にラクになる!

GASを使えば、

  • 条件に応じたデータ抽出

  • 定期的な自動整理

  • 作業ミスゼロ運用

が、誰でも実現できます!

まずはこの記事のサンプルコード通りに試してみて、
慣れてきたら「複雑な条件フィルタ」「別ファイルへの出力」「Slack通知連携」など、どんどん進化させていきましょう!

Shop now