スプレッドシートで
見積書管理を作る5ステップ
Excelや紙で行っている見積書の作成・提出・受注管理を、Googleスプレッドシートにまとめる手順を、中小企業向けに5ステップで整理します。
Table of Contents
見積書管理は「1見積1行」の台帳から作る
見積書をExcelのファイルごとに保存していると、どの見積が提出済みで、どれが返事待ちなのかを確認するたびにファイルを探す手間がかかります。1見積を1行で記録する台帳を1つ作り、作成から受注・失注までをそこで追えるようにすると、確認が一度で済みます。
ラスタージ(Lustage)は低コストの業務システム開発を行っており、スプレッドシートとGASによる見積書管理の構築もご相談いただけます。ここでは、自分たちで作る場合の5ステップを紹介します。
ステップ1:見積台帳の項目を決める
見積番号、見積日、取引先、案件名、見積金額(税込)、有効期限、ステータス、担当者を最小の項目とします。取引先名は顧客台帳と同じ表記に揃えると、後の集計が楽になります。
見積番号は「Q2026-0001」のように年と連番にし、重複しない決まりを最初に作ります。改訂版は枝番(-2)で区別し、元の行は残すと経緯が追えます。
- 見積番号、見積日、取引先、案件名
- 見積金額(税込)、有効期限
- ステータス、担当者
- 備考(改訂の理由・値引きの経緯)
ステップ2:ステータスと入力規則を設計する
ステータスは「作成中・提出済・受注・失注」の4つに絞り、プルダウンで選べるようにします。金額は数値、日付は日付の形式に制限すると、入力ミスで集計が崩れるのを防げます。
有効期限を過ぎても提出済のままの行は、条件付き書式で色を付けると、放置されている見積に気づけます。
ステップ3:受注率と担当者別の集計を作る
月別・担当者別に提出件数と受注件数を数えると、どの案件が決まりやすいかが見えてきます。件数はCOUNTIFSで、金額はSUMIFSで集計します。
台帳を直接絞り込むと他の人の表示も変わるため、集計は別シートの関数で行います。
// 台帳シート: A=見積番号, B=見積日, C=取引先, D=金額, E=有効期限, F=ステータス, G=担当者
// 担当者別の提出件数(提出済・受注・失注)
=COUNTIFS(台帳!G:G, "田中", 台帳!F:F, "<>作成中")
// 担当者別の受注件数
=COUNTIFS(台帳!G:G, "田中", 台帳!F:F, "受注")
// 受注率(提出件数が0のときは空欄)
=IFERROR(受注件数セル/提出件数セル, "")ステップ4:見積書PDFをGASで作る
見積書の雛形をGoogleドキュメントで作り、台帳の1行の値を差し込んだ複製をPDFにして保存します。手作業で転記する必要がなくなり、金額の転記ミスも減ります。
明細が複数行になる場合は、明細用の別シートを用意して見積番号で紐づけます。まずは明細1行の簡単な形で始めるのが現実的です。
function createQuotationPdf(row) {
// row = [見積番号, 見積日, 取引先, 金額, ...]
const template = DriveApp.getFileById('雛形のドキュメントID');
const copy = template.makeCopy('見積書_' + row[0]);
const doc = DocumentApp.openById(copy.getId());
const body = doc.getBody();
body.replaceText('{{見積番号}}', row[0]);
body.replaceText('{{取引先}}', row[2]);
body.replaceText('{{金額}}', row[3].toLocaleString());
doc.saveAndClose();
const pdf = copy.getAs('application/pdf');
DriveApp.getFolderById('保存先フォルダID').createFile(pdf).setName(row[0] + '.pdf');
copy.setTrashed(true);
}ステップ5:提出後のフォローをGASで通知する
毎朝GASを実行し、有効期限が近いのに提出済のままの見積を担当者へメールで知らせます。時間主導型トリガーを設定すれば、人が確認しなくても動きます。
GASはGoogleアカウントで動くため、サーバー代などの月額運用費がかかりません。一方で、1回の実行時間やメール送信数に上限があるため、件数が多い場合は事前に確認します。
function notifyPendingQuotations() {
const sheet = SpreadsheetApp.getActive().getSheetByName('台帳');
const rows = sheet.getDataRange().getValues().slice(1);
const limit = new Date();
limit.setDate(limit.getDate() + 3); // 3日以内に期限が来る
const targets = rows.filter(r => r[5] === '提出済' && r[4] instanceof Date && r[4] <= limit);
if (targets.length === 0) return;
const body = targets.map(r => `${r[0]} ${r[2]} ${r[3]}円`).join('\n');
MailApp.sendEmail('info@example.com', '【見積】期限が近い提出済の見積', body);
}まとめ
1見積1行の台帳、ステータスの設計、受注率の集計、見積書PDFの作成、提出後フォローの通知の順に進めれば、無理なく見積書管理を始められます。請求書管理や顧客管理と同じ考え方でつなげていくと、受注から入金までを1つの流れで追えるようになります。要件が大きい場合は、ラスタージにご相談ください。
よくある質問
月の見積件数が数十件程度なら運用できます。承認の履歴を厳密に残す必要がある場合や、見積から請求まで一気通貫で管理したい場合は、専用システムとの比較も検討してください。
見積台帳の1行からGoogleドキュメントの雛形を複製して差し込み、PDF化するGASで作れます。サーバー代などの月額運用費は0円で組めます。
提出日と回答期限を台帳に持ち、期限を過ぎて未回答の行をGASで毎朝メール通知すれば、フォローの漏れを減らせます。
ステータスを「作成中・提出済・受注・失注」に絞り、COUNTIFSで月別・担当者別に件数を数えます。受注件数を提出件数で割れば受注率になります。
はい。ラスタージ(Lustage)では、現在の見積から受注までの流れを確認したうえで、スプレッドシートとGASによる低コストの見積管理を設計・開発します。向かない規模の場合は別の構成を正直にご提案します。
関連するサービス・記事
Services
ラスタージ(Lustage)は、低コストの業務システム開発・DX化支援・AIチャットボット導入・GAS開発・Webサイト制作を、月額運用費0円の仕組みで承っています。
関連する記事
- スプレッドシートで請求書管理を作る5ステップ
- スプレッドシートで案件管理を作る5ステップ
- スプレッドシートで勤怠管理を作る5ステップ
- スプレッドシートで在庫管理を作る5ステップ
- スプレッドシートで顧客管理を作る6ステップ
- 業務システムの検収で確認する5項目|受け入れテスト
Official Docs
この記事で扱ったサービスの公式ドキュメントです。仕様や上限値は変わることがあるため、実装前に最新の内容をご確認ください。
自社の業務に合う構成を、 まず相談する。
現在の業務の流れと利用人数をお知らせください。ラスタージの田中達也が、見積書管理の作り方まで正直にお答えします。