あなたのチーム、こんな状況になっていませんか?
- 毎朝 Slack で「今日の進捗どうですか?」と聞いて回っている
- スプレッドシートの管理シートが「誰かが更新するまで古いまま」
- 締め切り3日前になってはじめてタスクの遅延に気づく
📊 インフォグラフィック挿入箇所
【Before → After】GAS導入でチームの進捗管理がこう変わる
※画像生成後にこのブロックを差し替えてください
そのムダ、全部なくせます。しかも月額0円で。
この記事では、GAS(Google Apps Script)とGoogleスプレッドシートを組み合わせて、チームの進捗を自動集計するダッシュボードを作る方法を、実装コードつきで解説します。「コードは書いたことがない」という方でも、コピペ&数クリックの設定で完成します。
📋 この記事でわかること
- GAS + Googleスプレッドシートでプロジェクト管理ダッシュボードを作る手順
- タスク進捗を担当者別に自動集計するコードの書き方
- 期限が近いタスクをメールで自動通知する仕組み
- 毎日自動実行するトリガーの設定方法
✅ こんな人に向けています
- プロジェクトの進捗をチャットで毎回確認するのが面倒な方
- 高額なプロジェクト管理ツールは使いたくない方
- Google Workspaceは使っているが、もっと活用したい方
- コードは書けないけど、こういう仕組みが欲しい方
私自身が副業の現場で「タスクの進捗がメンバーごとにバラバラ」「進捗確認のたびにチャットで聞かないといけない」という状況を何とかしたくて作ったのがこのダッシュボードです。
月額費用はゼロ。Googleアカウントさえあれば今日から動かせます。
なぜGAS+スプレッドシートがプロジェクト管理に向いているのか
世の中にはAsanaやNotionなど優れたプロジェクト管理ツールがたくさんあります。でも「5〜20人の中小チームでちょっとした進捗管理がしたい」だけなら、コストと学習コストが見合わないことが多いのです。
😓 よくある課題
- 月額費用が高い
- チームへの導入ハードルが高い
- 機能が多すぎて使いこなせない
- データが外部に出るのが不安
✅ GAS+スプレッドシートなら
- 月額ゼロ円(Googleアカウントのみ)
- 全員がスプレッドシートを知っている
- 自社の運用に合わせてカスタマイズ自由
- データはGoogleドライブ内に留まる
GASに限界があることも事実です。100人規模・複雑なワークフローには向きません。でも5〜20人規模なら十分すぎるくらい機能します。
全体の構成を把握しよう
まず完成イメージを頭に入れてから作り始めましょう。システムは大きく3つのパーツで成り立っています。
毎朝トリガーで①→②→③が自動的に実行されます
3枚のシート構成
| シート名 | 役割 | 操作する人 |
|---|---|---|
| タスク一覧 | タスクデータを入力・管理 | メンバー全員 |
| ダッシュボード | 集計結果を表示(自動更新) | GASが自動で書き込む |
| 設定 | アラート日数などの設定値 | 管理者のみ |
.jpg)
STEP 1:スプレッドシートの準備
Googleドライブで新しいスプレッドシートを作成し、3枚のシートを用意します。まず「タスク一覧」シートの1行目にヘッダーとして以下の9項目を入力してください。
E: 開始日 / F: 期限 / G: 完了日 / H: 進捗率(%) / I: コメント
💡 ポイント:ステータスの値を統一する
ステータス列には「未着手」「進行中」「完了」「保留」の4つだけを使うようにルール化しましょう。スペルミスや表記揺れがあると集計が正確に動きません。
STEP 2:GASでダッシュボードを自動更新する
いよいよGASのコードを書いていきます。Google Apps ScriptはGoogleスプレッドシートのメニューから「拡張機能」→「Apps Script」で開けます。
🚀 GASエディタの開き方
- Googleスプレッドシートを開く
- 上部メニュー「拡張機能」→「Apps Script」をクリック
- ブラウザの新しいタブでGASエディタが開きます
コード①:ダッシュボードを自動更新する
以下のコードをGASエディタに貼り付けて「実行」ボタンを押してください。
function updateDashboard() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const taskSheet = ss.getSheetByName('タスク一覧');
const dashSheet = ss.getSheetByName('ダッシュボード');
// タスクデータ取得(2行目から最終行まで)
const lastRow = taskSheet.getLastRow();
const data = taskSheet.getRange(2, 1, lastRow - 1, 5).getValues();
// 担当者ごとの進捗を集計
const memberStats = {};
data.forEach(row => {
const [task, member, status] = row;
if (!memberStats[member]) {
memberStats[member] = { total: 0, done: 0 };
}
memberStats[member].total++;
if (status === '完了') memberStats[member].done++;
});
// ダッシュボードに書き込み
dashSheet.clearContents();
dashSheet.getRange('A1').setValue('担当者');
dashSheet.getRange('B1').setValue('タスク数');
dashSheet.getRange('C1').setValue('完了数');
dashSheet.getRange('D1').setValue('完了率');
let row = 2;
for (const [member, stats] of Object.entries(memberStats)) {
const rate = Math.round((stats.done / stats.total) * 100);
dashSheet.getRange(row, 1).setValue(member);
dashSheet.getRange(row, 2).setValue(stats.total);
dashSheet.getRange(row, 3).setValue(stats.done);
dashSheet.getRange(row, 4).setValue(rate + '%');
row++;
}
}
✅ 動作確認
「実行」ボタンを押すと、ダッシュボードシートに担当者別の集計結果が自動入力されます。初回は「権限を確認」ダイアログが出るので「許可」をクリックしてください。
コード②:期限リマインダーメールを送る
期限3日前になったタスクの担当者へ、自動でメール通知します。
function sendDeadlineReminder() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('タスク一覧');
const lastRow = sheet.getLastRow();
const data = sheet.getRange(2, 1, lastRow - 1, 5).getValues();
const today = new Date();
const threeDaysLater = new Date();
threeDaysLater.setDate(today.getDate() + 3);
data.forEach(row => {
const [task, member, status, deadline, email] = row;
if (status === '完了') return; // 完了済みはスキップ
const deadlineDate = new Date(deadline);
if (deadlineDate <= threeDaysLater && deadlineDate >= today) {
GmailApp.sendEmail(
email,
`【期限注意】${task}`,
`${member}さん\n\n「${task}」の期限が${deadline}です。\n進捗確認をお願いします。`
);
}
});
}
⚠️ 注意
「タスク一覧」シートのE列に、担当者のメールアドレスを入力しておく必要があります。Gmail形式(例:yamada@gmail.com)で入力してください。
STEP 3:トリガーを設定して自動実行にする
コードを毎日手動で実行するのは手間がかかります。GASのトリガー機能を使えば、指定した時間に自動実行できます。
🕐 トリガー設定の手順
- GASエディタ左メニューの「時計アイコン(トリガー)」をクリック
- 右下の「+トリガーを追加」ボタンをクリック
- 実行する関数:sendDeadlineReminder を選択
- イベントのソース:時間主導型 を選択
- 時間の種類:日タイマー、時刻:午前9時〜10時 に設定
- 「保存」をクリック → 毎朝9時に自動でリマインダーメールが送信されます
GASでできること・できないこと
GASは非常に便利ですが、万能ではありません。導入前に確認しておきましょう。
✅ GASが得意なこと
- Googleスプレッドシートの自動集計
- Gmailでのメール自動送信
- Googleカレンダーへの自動登録
- 定期的なバッチ処理
- フォーム回答の自動仕分け
❌ GASが苦手なこと
- リアルタイムの処理(遅延あり)
- 大量データの高速処理
- Google以外のサービス連携(要API)
- 複雑なUI・アプリ画面の作成
- 1回の実行が6分を超える処理
まとめ
📝 この記事のまとめ
- GASとGoogleスプレッドシートで月額0円のプロジェクト管理ダッシュボードが作れる
- 3シート構成(タスク一覧・ダッシュボード・設定)でシンプルに管理
- 担当者別の進捗自動集計で管理者の確認作業を大幅削減
- 期限リマインダーで期限切れタスクを事前に防止
- トリガー設定で毎朝自動実行→完全ハンズフリー運用が可能
「自分の会社の業務フローに合わせてカスタマイズしたい」「もっと複雑な集計ロジックを実装したい」という方は、お気軽にご相談ください。

コメントを残す