スプレッドシートで
請求書管理を作る5ステップ

Excelや紙で行っている請求書の発行・入金管理を、Googleスプレッドシートにまとめる手順を、中小企業向けに5ステップで整理します。

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

Table of Contents

請求書管理は「1請求1行」の台帳から作る

請求書をExcelのファイルごとに保存していると、どの請求が入金済みか、どれが未入金かを確認するたびにファイルを開く手間がかかります。1請求を1行で記録する台帳を1つ作り、発行から入金までをそこで追えるようにすると、確認が一度で済みます。

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

ステップ1:請求台帳の項目を決める

請求番号、請求日、取引先、請求金額(税抜・消費税・税込)、支払期限、入金ステータス、入金日を最小の項目とします。取引先名は顧客台帳と同じ表記に揃えると、後の集計が楽になります。

請求番号は「2026-0001」のように年と連番にし、重複しない決まりを最初に作ります。

  • 請求番号、請求日、取引先
  • 税抜金額、消費税、税込金額
  • 支払期限、入金ステータス、入金日
  • 備考(案件名・担当者)

ステップ2:入金ステータスと入力規則を設計する

ステータスは「未発行・発行済・入金済・一部入金」のように3〜4個に絞り、プルダウンで選べるようにします。金額は数値、日付は日付の形式に制限すると、入力ミスで集計が崩れるのを防げます。

支払期限を過ぎて未入金の行は、条件付き書式で赤くすると気づきやすくなります。

ステップ3:未入金と月次の集計を作る

未入金の請求だけを別シートに一覧にしておくと、督促の対象がすぐ分かります。月ごとの請求額と入金額は、SUMIFSで集計します。

台帳を直接絞り込むと他の人の表示も変わるため、抽出は別シートのFILTER関数で行います。

// 台帳シート: A=請求番号, B=請求日, C=取引先, D=税込金額, E=支払期限, F=ステータス
// 期限を過ぎた未入金(一覧シートのA2に入力)
=FILTER(台帳!A2:F, 台帳!F2:F<>"入金済", 台帳!E2:E<TODAY())
// 取引先別の未入金合計
=SUMIFS(台帳!D:D, 台帳!C:C, "株式会社サンプル", 台帳!F:F, "<>入金済")

ステップ4:請求書PDFをGASで作る

請求書の雛形をGoogleドキュメントで作り、台帳の1行の値を差し込んだ複製をPDFにして保存します。手作業で転記する必要がなくなり、金額の転記ミスも減ります。

インボイス制度に対応する場合は、登録番号、税率ごとの対価の額と消費税額などを雛形に入れます。要件の細部は国税庁などの公式情報で確認してください。

function createInvoicePdf(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 notifyOverdueInvoices() {
  const sheet = SpreadsheetApp.getActive().getSheetByName('台帳');
  const rows = sheet.getDataRange().getValues().slice(1);
  const today = new Date();
  const overdue = rows.filter(r => r[5] !== '入金済' && r[4] instanceof Date && r[4] < today);
  if (overdue.length === 0) return;
  const body = overdue.map(r => `${r[0]} ${r[2]} ${r[3]}円`).join('\n');
  MailApp.sendEmail('info@example.com', '【請求】未入金の請求書', body);
}

まとめ

1請求1行の台帳、入金ステータスの設計、未入金の集計、請求書PDFの作成、期限の通知の順に進めれば、無理なく請求書管理を始められます。会計ソフトとの連携や電子帳簿保存法への対応など要件が大きい場合は、ラスタージにご相談ください。

よくある質問

月の請求件数が数十〜数百件程度なら運用できます。インボイス制度への対応や電子帳簿保存法の要件を厳密に満たす必要がある場合は、対応済みの会計ソフトも比較してください。

登録番号や税率ごとの合計など必要項目を台帳と書式に入れれば、請求書の作成は可能です。ただし要件の解釈は税理士や公式情報で確認してください。

入金ステータスと支払期限を台帳に持ち、期限を過ぎて未入金の行を条件付き書式で赤くします。GASで毎朝チェックして担当者へ通知すれば、見落としを減らせます。

台帳の1行からGoogleドキュメントの雛形を複製し、差し込み後にPDF化するGASで作れます。サーバー代などの月額運用費は0円で組めます。

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

関連するサービス・記事

Official Docs

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

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

現在の業務の流れと利用人数をお知らせください。ラスタージの田中達也が、請求書管理の作り方まで正直にお答えします。

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