小さなCSVから、未来の残高を見る
個人事業を始めたエンジニアに向けて、日付・区分・収支・残高・備考の5列で資金繰りを管理する記事を書きました。記帳と並行して、請求書を出した日と実際の入金日を分け、支払日に現金が残るかを確認します。
コードを書く前に、データのルールを決めます。
- 入金はプラス、出金はマイナスにする
- 日付は対象口座の着金日・引落日を使う
- 開始残高を入金として加算しない
- 予定が実績になったら同じ行を置き換える
架空のサンプルCSVは本文からダウンロードできます。通常と入金遅延の2種類があり、実在の取引情報は含みません。
残高を前のセルだけに依存させない
A〜E列にCSVを取り込み、I1へ開始残高を入れます。D2へ次の式を入れ、下へコピーする構成です。
=$I$1+SUM($C$2:C2)
開始残高と収支の累計から再計算するため、途中の残高セルを書き換えた値を後続へ伝えにくくなります。CSV自体は計算機能を持たないので、計算列はスプレッドシート側で管理します。
日付順の並べ替えは表全体で行い、その後で式を入れ直します。日付列だけ動かすと、金額と取引の対応が壊れます。
予定と実績を両方足さない
備考にCF003のような識別子を付け、入金確認後はその予定行を実績へ置き換えます。40万円の予定と40万円の実績を両方残すと、80万円の入金に見えてしまいます。一部入金なら、実績と残り予定へ分割します。
カードも同様です。購入日と口座引落日を両方出金として足さず、対象口座から現金が出る日で予測します。
月末が同じでも、途中で支払えなくなる
説明用の試算では、開始50万円、予定入金40万円で月末残高29万円。入金日を翌月へずらすと、月末の予測はマイナス11万円になります。予備費を仮に10万円残すなら、追加必要額は21万円です。自動計算の対象は、月末残高だけでなく期間内の最低残高になります。
本文では、口座明細との照合、期日を過ぎた未入金の確認、融資等の比較まで扱っています。この5列CSVは資金繰りの補助表で、税務帳簿や電子帳簿保存の要件を満たすと保証するものではありません。Gitも変更履歴の確認には使えても、改ざん防止の保証とは分けて考えます。
※2026年10月時点の公開情報に基づきます。数値・日付は架空例です。
本文・サンプルCSV:
https://shinichi.noguchi.jp.net/blog/2026-10-05-cashflow-calendar-ledger.html