スプレッドシートで
発注管理を作る5ステップ
仕入先への発注から納品・検収までを、Googleスプレッドシートにまとめる手順を、中小企業向けに5ステップで整理します。
Table of Contents
発注管理は「1発注1行」の台帳から作る
発注をメールや電話、紙のメモで行っていると、いつ何を誰に頼んだのか、納品は済んだのかを確認するたびに探す手間がかかります。1発注を1行で記録する台帳を1つ作り、発注から納品までをそこで追えるようにすると、納期遅れと二重発注が減ります。
ラスタージ(Lustage)は低コストの業務システム開発とDX化支援を行っており、発注管理の構築もご相談いただけます。ここでは、自分たちで作る場合の5ステップを紹介します。
ステップ1:発注台帳の項目を決める
発注番号、発注日、仕入先、品名、数量、単価、金額、納期、ステータス、担当者を最小の項目とします。発注番号は「P2026-0001」のように年と連番にします。
仕入先は別シートの一覧から選ぶプルダウンにすると、表記ゆれを防げ、ステップ5の集計も正確になります。
- 発注番号、発注日、仕入先
- 品名、数量、単価、金額(数量×単価)
- 納期、ステータス、担当者
- 納品日、備考
ステップ2:ステータスと入力規則を設計する
ステータスは「発注済み・納品済み・支払済み」の3つに絞ります。細かく分けすぎると更新されなくなるため、迷ったらこの3つから始めます。
納期を過ぎても納品済みになっていない行は、条件付き書式で色を付けると、遅れている発注に気づけます。
ステップ3:納期遅れをGASで通知する
毎朝GASを実行し、納期を過ぎても「発注済み」のままの行を担当者へメールで知らせます。時間主導型トリガーを設定すれば、人が確認しなくても動きます。
GASはGoogleアカウントで動くため、サーバー代などの月額運用費がかかりません。一方で、1回の実行時間に上限があるため、台帳が数千行を超える場合は集計の方法を見直します。
function notifyLateOrders() {
const sheet = SpreadsheetApp.getActive().getSheetByName('発注台帳');
const rows = sheet.getDataRange().getValues().slice(1);
const today = new Date();
today.setHours(0, 0, 0, 0);
// A=発注番号 C=仕入先 D=品名 H=納期 I=ステータス
const late = rows.filter(r => r[8] === '発注済み' && r[7] instanceof Date && r[7] < today);
if (late.length === 0) return;
const body = late.map(r => `${r[0]} ${r[2]} ${r[3]}`).join('\n');
MailApp.sendEmail('info@example.com', '【発注】納期を過ぎた未納品の発注', body);
}ステップ4:発注書PDFをGASで作成する
発注書の体裁を整えた「発注書」シートを用意し、台帳の1行の内容を差し込んだうえでPDFに変換してDriveに保存します。毎回手で作る手間と、転記ミスが減ります。
PDFの作成と送信の具体的な実装は、GASでスプレッドシートをPDF化してメール送信する記事で紹介しています。取引書類の保存方法は、税理士などに確認したうえで決めてください。
function exportOrderPdf(orderNo) {
const ss = SpreadsheetApp.getActive();
const sheet = ss.getSheetByName('発注書');
sheet.getRange('B2').setValue(orderNo); // 台帳をVLOOKUPで引く
SpreadsheetApp.flush();
const url = `https://docs.google.com/spreadsheets/d/${ss.getId()}/export?format=pdf&gid=${sheet.getSheetId()}`;
const blob = UrlFetchApp.fetch(url, {
headers: { Authorization: 'Bearer ' + ScriptApp.getOAuthToken() },
}).getBlob().setName(`発注書_${orderNo}.pdf`);
return DriveApp.createFile(blob);
}ステップ5:仕入先別・月別に集計して見直す
月別・仕入先別に金額をSUMIFSで集計すると、特定の仕入先に偏っていないか、単価が上がっていないかを確認できます。数か月分の台帳が貯まった段階で、発注先の見直しや発注のまとめ買いを検討します。
発注が増えて複数人が同時に更新するようになったり、在庫と自動で連動させたくなったりした場合は、専用の購買システムや個別開発への移行を検討するタイミングです。
// 仕入先(C列)別の月間発注額(G=金額 B=発注日)
=SUMIFS(発注台帳!G:G, 発注台帳!C:C, "株式会社サンプル", 発注台帳!B:B, ">="&DATE(2026,10,1), 発注台帳!B:B, "<"&DATE(2026,11,1))まとめ
1発注1行の台帳、ステータスの設計、納期遅れの通知、発注書PDFの作成、仕入先別の集計の順に進めれば、無理なく発注管理を始められます。要件が大きい場合や、在庫・請求と連動させたい場合は、ラスタージにご相談ください。
よくある質問
月の発注が数十〜数百件程度で、担当者が数人なら運用できます。在庫と連動した自動発注や、取引先との電子取引が必要な場合は、専用の購買システムとの比較も検討してください。
発注台帳に納期を入れ、納期を過ぎても「納品済み」になっていない行をGASで毎朝メール通知すれば、遅れに早く気づけます。仕入先への確認連絡も、通知をきっかけに行えます。
発注書のテンプレート用シートに台帳の1行を差し込み、GASでPDFに変換してDriveに保存できます。サーバー代などの月額運用費は0円で組めますが、1回の実行時間にはGoogleの上限があります。
取引書類の保存期間や電子取引の保存要件は、取引の内容によって異なります。運用を決める前に、税理士や国税庁の案内で確認してください。
はい。ラスタージ(Lustage)では、現在の発注の流れと件数を確認したうえで、スプレッドシートとGASによる低コストの発注管理を構築します。向かない規模の場合は別の構成を正直にご提案します。
関連するサービス・記事
Services
ラスタージ(Lustage)は、低コストの業務システム開発・DX化支援・AIチャットボット導入・GAS開発・Webサイト制作を、月額運用費0円の仕組みで承っています。
関連する記事
- スプレッドシートで見積書管理を作る5ステップ
- スプレッドシートで請求書管理を作る5ステップ
- スプレッドシートで案件管理を作る5ステップ
- スプレッドシートで勤怠管理を作る5ステップ
- スプレッドシートで在庫管理を作る5ステップ
- スプレッドシートで顧客管理を作る6ステップ
Official Docs
この記事で扱ったサービスの公式ドキュメントです。仕様や上限値は変わることがあるため、実装前に最新の内容をご確認ください。
自社の業務に合う構成を、 まず相談する。
現在の業務の流れと利用人数をお知らせください。ラスタージの田中達也が、発注管理の作り方や、スプレッドシートで足りるかどうかまで正直にお答えします。