スプレッドシートで
経費精算管理を作る5ステップ

取引先との契約の更新期限や自動更新の見落としを防ぐ契約管理を、Googleスプレッドシートで始める手順を、中小企業向けに5ステップで整理します。

|著者: (ラスタージ代表)|対象: 契約管理 / スプレッドシート / 低コスト

Table of Contents

契約管理は「期限を見落とさない」ことから始める

契約書がフォルダや担当者の手元に散らばっていると、自動更新の解約期限を過ぎてしまう、誰がどの契約の担当か分からない、といった問題が起きます。1契約を1行で記録する台帳を作り、更新日と通知期限を必ず残すだけで、見落としは大きく減ります。

ラスタージ(Lustage)は低コストの業務システム開発とDX化支援を行っており、契約管理の構築もご相談いただけます。ここでは、自分たちで作る場合の5ステップを紹介します。

ステップ1:契約台帳の項目を決める

契約番号、取引先、契約名、契約種別、開始日、終了日、自動更新の有無、解約通知の期限、金額、担当者、契約書リンク、ステータスを基本の項目とします。最初は12項目前後に絞り、入力されなくなる状態を避けます。

契約書の内容は台帳に全文を写さず、要点だけを備考に書き、原本はPDFへのリンクで参照します。

  • 契約番号、取引先、契約名、契約種別
  • 開始日、終了日、自動更新の有無、解約通知の期限
  • 金額、担当者、契約書リンク、ステータス

ステップ2:入力規則と期限の色分けを設定する

契約種別とステータス(有効・更新協議中・終了)はプルダウンにし、日付列は日付のみ入力できる入力規則にします。表記ゆれがなくなり、集計や絞り込みが正確になります。

条件付き書式で、解約通知の期限まで30日以内の行を黄色、期限を過ぎた行を赤にすると、シートを開いた瞬間に対応が必要な契約が分かります。カスタム数式は「=AND($H2<>"", $H2-TODAY()<=30)」のように指定します。

ステップ3:更新期限をGASで事前に通知する

毎朝GASを実行し、解約通知の期限が60日後・30日後・7日後になる契約を担当者へメールで知らせます。時間主導型トリガーを設定すれば、人が確認しなくても動きます。

GASはGoogleアカウントで動くため、サーバー代などの月額運用費がかかりません。一方で、1回の実行時間やメール送信数にはGoogleの上限があるため、担当者ごとに1通へまとめて送る作りにします。

function notifyContractDeadlines() {
  const sheet = SpreadsheetApp.getActive().getSheetByName('契約台帳');
  const rows = sheet.getDataRange().getValues().slice(1);
  const today = new Date(); today.setHours(0, 0, 0, 0);
  const targets = [60, 30, 7];
  // A=契約番号 B=取引先 C=契約名 H=解約通知の期限 J=担当者メール L=ステータス
  const byOwner = {};
  rows.forEach(r => {
    if (r[11] !== '有効' || !(r[7] instanceof Date)) return;
    const days = Math.round((r[7] - today) / 86400000);
    if (targets.indexOf(days) === -1) return;
    (byOwner[r[9]] = byOwner[r[9]] || []).push(`${r[0]} ${r[1]} ${r[2]}(解約通知の期限まであと${days}日)`);
  });
  Object.keys(byOwner).forEach(mail => {
    MailApp.sendEmail(mail, '【契約管理】解約通知の期限が近い契約があります', byOwner[mail].join('\n'));
  });
}

ステップ4:契約種別・取引先別に集計する

有効な契約の件数と年間金額を、契約種別別・取引先別にCOUNTIFSとSUMIFSで集計すると、固定費の見直しや取引先への依存度の確認に使えます。集計は別シートに作り、台帳を直接触らないようにします。

// 有効な契約の件数(契約種別=D列、ステータス=L列)
=COUNTIFS(契約台帳!D:D, "業務委託", 契約台帳!L:L, "有効")
// 有効な契約の金額合計(金額=I列)
=SUMIFS(契約台帳!I:I, 契約台帳!D:D, "業務委託", 契約台帳!L:L, "有効")

ステップ5:保管と閲覧権限のルールを決める

契約書のPDFはGoogleドライブの共有フォルダに保存し、ファイル名を「契約番号_取引先_契約名」にそろえて台帳にリンクを残します。台帳とフォルダは、閲覧できる人を必要な担当者に絞って共有します。

契約書の保存期間や、契約内容の法的な確認は専門家の判断が必要なため、顧問の弁護士や税理士に確認してください。契約数が増えて同時編集が増えたり、電子契約や審査フローと連携したくなったりした場合は、専用サービスや個別開発へ移行する時期です。ここまで固めた項目が、そのまま要件になります。

まとめ

1契約1行の台帳、入力規則と色分け、更新期限の事前通知、種別別の集計、保管と権限のルールの順に進めれば、無理なく契約管理を始められます。承認フローや電子契約との連携が必要な場合は、ラスタージにご相談ください。

よくある質問

契約が数十〜数百件程度で、更新期限の見落とし防止が主な目的ならスプレッドシートで運用できます。電子契約の締結や法的な審査の機能が必要な場合は、専用サービスも比較してください。

Googleドライブの共有フォルダに保存し、台帳の行にリンクを残す方法が手軽です。閲覧できる人は必要な担当者に絞り、保存期間などの扱いは顧問の弁護士や税理士など専門家に確認して決めてください。

「解約通知の期限」を更新日とは別の列で持ち、その日の60日前・30日前などにGASで担当者へメール通知します。更新日だけを管理すると、通知期限を過ぎてから気づくことがあります。

台帳では契約の条件を要約して残し、契約書の原本はドライブのPDFを正とします。契約内容の法的な解釈や審査は、台帳では代替できないため専門家に相談してください。

はい。ラスタージ(Lustage)では、現在の契約の保管・更新の流れを確認したうえで、スプレッドシートとGASによる低コストの契約管理を構築します。向かない規模の場合は別の構成を正直にご提案します。

関連するサービス・記事

Official Docs

この記事で扱ったサービスの公式ドキュメントです。仕様や上限値は変わることがあるため、実装前に最新の内容をご確認ください。

自社の業務に合う構成を、 まず相談する。

現在の業務の流れと利用人数をお知らせください。ラスタージの田中達也が、契約管理の作り方や、スプレッドシートで足りるかどうかまで正直にお答えします。

月額運用費0円の業務システムを見る