このチュートリアルのゴール

  • 季節性のある卸売業(架空)の設例で、発生ベースの「損益計画」と現金ベースの「資金繰り表」を別ブロックとして設計し、白紙のExcelから12か月分の資金繰り表を組み上げる
  • 回収サイト・支払サイトの違いをOFFSET関数で自動的にずらす方法、賞与月・納税月に生じる資金の谷、借入の実行と返済スケジュールの接続方法を身につける
  • 前提知識:Excelの基本操作(絶対参照・フィルハンドル)ができれば十分。発生主義と現金主義の違いは既存記事で確認しながら進められる

はじめに:なぜ損益計画だけでは資金が読めないのか

黒字の会社が資金繰りに行き詰まる、という話は珍しくありません。原因の多くは、売上を計上したタイミングと実際に代金が口座に振り込まれるタイミングがずれることにあります。月次の損益計画(発生ベース)は「その月にいくら儲かったか」を示しますが、経営に必要なのは「その月に口座にいくら残るか」という現金ベースの情報です。この2つを別ブロックとして設計し、最後につなぎ合わせるのが資金繰り表の基本設計です。発生主義と現金主義の違いはこちらで確認できます。

特に季節性のある商売では、この作業の価値がはっきり出ます。年間を通して損益は黒字でも、繁忙期の仕入代金の支払いと閑散期の入金が重なる月、賞与や税金の納付が集中する月には、手元の現金だけが先に細ります。資金繰り予測の実務でまず作られるのがこの月次12か月モデルで、週単位のより短期の資金管理は13週間の短期資金繰り管理という別テーマになります。

設例の会社:贈答品(食品・日用品ギフト)を小売店向けに卸すA社(架空、会計年度は4月始まり)を題材にします。夏の「お中元」(6月ピーク)と冬の「お歳暮」(12月ピーク)に売上が集中する季節性のある商売で、通常月の月商1,000万円に対し繁忙期はその1.5〜2倍まで伸びます。数字はすべて理解のための仮設例です。単位はすべて万円です。

本文に出てくる用語の対応表
用語ひとことで言うと
損益計画(発生ベース)いつ「売った」「使った」と数えるかのルールで作る、利益の計画
資金繰り表(現金ベース)実際に銀行口座からお金が出入りするタイミングで作る、現金残高の予測
回収サイト売上を計上してから、実際に代金が入金されるまでの猶予期間
支払サイト仕入を計上してから、実際に代金を支払うまでの猶予期間
中間納付本決算を待たずに年度の途中で一部を前払いする税金の納付
ミニマムキャッシュこれを下回ると経営が危うくなる、最低限確保したい現金残高

完成形の全体像

完成形は4つのブロックでできています。①の前提と②の売上計画・賞与、③の中間納付、④の借入実行・返済が手入力(青字)で、それ以外は数式です。組む順番は①→②→③→④→検証です。

XMonthly_CashFlow.xlsx – Excel(完成形の全体像)
BC(前提値)C〜N(4月〜翌3月)
4-15① 前提ブロック回収・支払サイト、原価率、固定費など12項目(うち1つは数式)
18-26② 損益計画(発生ベース)売上高計画(入力)→仕入→粗利→営業利益→経常利益
29-40③ 資金繰り表(現金ベース)入金・支払はOFFSETでサイト分ずらす。期末現金を算出
42-47④ 借入返済スケジュール③・②に接続し、利息と元金を計算
図0:②は「売った月」に、③は「お金が動いた月」に数字を置きます。同じ売上・仕入のデータでも、ブロックが違えばセルに入る月が変わるのがこのモデルの核心です。

1前提ブロックを作る(5分)

目的:回収サイト・支払サイトなど、モデル全体を動かす「決め」の数字を1か所に集めます。あとで実験するときも、触るのはここだけです。

操作:B4〜B15に項目名、C4〜C15に数値を入力します。入力セルはすべて青字にしてください。
X① 前提ブロック(すべて手入力・青字、C15のみ数式)
BC
4回収サイト(か月)2
5支払サイト(か月)1
6仕入原価率(対売上)65%
7月次固定費(人件費・家賃等)300
8減価償却費(月額)50
9賞与支給額(1回あたり)400
10消費税・法人税等の中間納付額800
11借入金利(年率)6.0%
12期首現金残高(4月1日時点)500
13前年度2月の売上高1,000
14前年度3月の売上高1,000
15前年度3月の仕入高=C14*$C$6
図1:13・14行は、期首(4月)から数か月分の入金・支払を計算するために必要な「前年度の実績」です。今期のシートしか作っていなくても、この2セルさえ埋めれば期首月の計算が動きます。C15は=C14*$C$6でつながる数式で、650になれば正解です。

税金の前提(10行):計算を単純にするため売上・仕入は税抜で扱います。①3月決算の前期分確定納付(原則、事業年度終了の翌日から2か月以内=5月末期限)は期首現金500万円に織り込み済み、②消費税の中間申告は確定消費税額が48万円超400万円以下の区分(年1回・対象期間末日の翌日から2か月以内)と仮定し、法人税等・消費税の中間納付をまとめて11月に800万円だけ置いています。実務では5月の確定納付を別行に、年3回・11回の区分ならその回数・月に分けてください。

2損益計画(発生ベース)を組む(15分)

目的:C列(4月)〜N列(翌3月)の12か月分に、「売った月」を基準にした利益計画を作ります。ここでの主役は売上高計画で、これは経営の意思決定(営業目標・季節性の見立て)そのものなので、比率で自動計算せず月ごとに直接入力します。

操作:18行に月次売上高計画を直接入力(青字)。19〜26行は数式で、C列に入れてN列まで右コピー。19行 =C18*$C$6(仕入高)/20行 =C18-C19売上総利益/21行は賞与支給月(6月・12月)のみ=$C$9、他は0/22行 =$C$7/23行 =$C$8/24行 =C20-C21-C22-C23営業利益/25行はSTEP4の同じ列の45行を参照(例:E25なら=E45。STEP4を組むまでは0でよい)/26行 =C24-C25(経常利益)
X② 損益計画 — C・D・E列(4〜6月)の数式
BC(4月)D(5月)E(6月)
18月次売上高計画1,0001,0001,800
19仕入高=C18*$C$6右へコピー
20売上総利益=C18-C19
21賞与(支給月のみ=$C$9)00=$C$9
24営業利益=C20-C21-C22-C23
26経常利益00(120)
図2:E列(6月)は売上総利益630に対し賞与400・固定費300・減価償却50が乗るため、営業利益は(120)の赤字になります。繁忙期でも賞与月は利益が落ち込む、という会社の実態がここで見えます。

18行の入力値(4月〜翌3月):1,000/1,000/1,800/1,500/1,000/1,000/1,000/1,600/2,000/1,000/1,000/1,000(万円、合計14,900)。この12個の数字だけがモデル全体を動かす経営側の意思決定です。

正解値(経常利益、STEP4完成後の値):0/0/(120)/170/(5)(5)(5)/205/(55)(5)(5)(4)(万円、年間合計171)。営業利益(利息前)の年間合計は215万円で、賞与月(6月・12月)だけ赤字化、11月(お歳暮売上の計上月)が210万円で年間最大です。

つまずき:21行(賞与)を「発生した月」以外の月にも均等按分したくなりますが、本チュートリアルでは支給月に全額計上する単純化を採用しています。月割りで引当金を積む方式は、より実務に近い発展形として扱ってください。

3サイトのずらし方:OFFSETで入金・支払を計算する(15分)

目的:ここが本チュートリアルの核心です。「6月に売った」という事実(②のE18)と、「6月の売上代金が実際に入金される月」は別物です。回収サイトが2か月なら、6月の入金は4月の売上高になります。この「何か月前を見るか」を毎回手で数えず、OFFSET関数で機械的に計算します。

操作:29行(入金)と30行(仕入代金の支払)を作ります。C・D列(4月・5月)だけは前年度実績を直接参照し、E列(6月)以降はOFFSETで自動的にサイト分前の月を参照します。
X③ 入金・支払の数式(C・D・E・F列)
BC(4月)D(5月)E(6月)F(7月)
29入金(売上代金)=C13=C14=OFFSET(E18,0,-$C$4)=OFFSET(F18,0,-$C$4)
30支払(仕入代金)=C15=OFFSET(D19,0,-$C$5)=OFFSET(E19,0,-$C$5)=OFFSET(F19,0,-$C$5)
図3:OFFSET(E18,0,-$C$4)は「E18(6月の売上)を起点に、列方向へ-$C$4(-2)列動いた先=C18(4月の売上)を返す」という意味です。$C$4を変えればE列以降のOFFSET式は自動的にその月数だけ前を参照しますが、C・D列(前年度実績を直接参照している期首側の2列)は連動しないため、サイトを3か月以上に伸ばす場合は手で付け替える必要があります(後述の実験②で扱います)

正解値(入金):1,000/1,000/1,000/1,000/1,800/1,500/1,000/1,000/1,000/1,600/2,000/1,000(万円、合計14,900)正解値(支払):650/650/650/1,170/975/650/650/650/1,040/1,300/650/650(万円、合計9,685)。入金合計は売上合計、支払合計は仕入合計と一致し、ずれるのは金額の総量ではなく月ごとのタイミングだけです。

つまずき:C・D列にもOFFSETをそのままコピーすると、空白のA列やB列(項目名の文字列)を参照してしまいます。空白のA列はエラーにならず黙って0を返すため入金が消えたことに気づきにくく、B列(文字列)#VALUE!エラーで後続の計算が止まります。サイトを2か月・1か月より長くする場合は、前年度実績を置く行(13〜15行)をその分だけ増やしてください。

4借入返済スケジュールを組む(10分)

目的:繁忙期の仕入と賞与が重なる月に備え、あらかじめ借入を実行しておきます。借入残高を毎月ロールフォワードし、利息と元金を切り分けて計算します。

操作:42〜47行をC〜N列に作成。44行(借入の実行)と46行(元金返済)だけが手入力で、他は数式です。42行は1つ左の列の47行(例:E42なら=D47、C42のみ0)/43行 =$C$11/12(月利、C列だけでよい)/45行はその列の42行×$C$43(例:E45なら=E42*$C$43)/47行はその列の42+44-46(例:E47なら=E42+E44-E46)。
X④ 借入返済スケジュール — E・F・M列(6月・7月・2月)
BE(6月)F(7月)M(2月)
42借入残高(期首)=D47=E47=L47
44借入の実行1,00000
45支払利息=E42*$C$43=F42*$C$43=M42*$C$43
46元金返済00200
47借入残高(期末)1,0001,000800
図4:45行の利息は期首残高(42行)に対して計算します。本モデルは「借入は月末に実行し、利息は翌月から発生する」と仮定しているため、実行した当月(E列)は期首残高が0で利息も自動的に0になります。月初実行で当月分から利息が発生する契約なら式の組み替えが必要です。借入残高のつなぎ方はロールフォワード表と同じで、元利均等返済にはPMT・IPMT・PPMT関数が必要です(記事末のFAQ)

正解値支払利息、7月〜翌3月):5/5/5/5/5/5/5/5/4(万円)。1月まで残高1,000万円に月5万円の利息が発生し、2月に元金200万円を返済した後は残高800万円に利息4万円です。2月に出ていく現金は元金200+利息5の合計205万円ですが、これは返済の現金支出額であって利息そのものではありません。借入残高(期末)は6月〜1月が1,000、2月・3月が800です。

5資金繰り表を完成させ、期末現金をつなぐ(10分)

目的:29・30行(入金・支払)に、固定費・賞与・税金の中間納付・借入の実行と返済を加えて、月末の現金残高まで一本につなげます。

操作:31行 =C22/32行 =C21/33行は11月(J列)のみ=$C$10、他は0/34行 =C29-C30-C31-C32-C33経常収支/35行 =C44(④から接続)/36行 =C45+C46(利息+元金)/37行 =C35-C36(財務収支)/38行 =C34+C37/39行 =$C$12(4月のみ。5月以降は前列の40行)/40行 =C39+C38(期末現金)。入金・支払・返済はすべてプラスの数値で置き引き算で差し引く流儀に統一しています。マイナスで入れる流儀ならSUMで合計してください。混在させないことが重要です。
X完成 — 資金繰り表・全期間の主要数値
B4月5月6月7月8月9月10月11月12月1月2月3月
29入金1,0001,0001,0001,0001,8001,5001,0001,0001,0001,6002,0001,000
30支払(仕入)6506506501,1709756506506501,0401,300650650
33中間納付00000008000000
35借入の実行001,000000000000
36借入返済00055555552054
38現金収支合計5050650(475)52054545(755)(745)(5)84546
40期末現金残高5506001,2507751,2951,8401,8851,1303853801,2251,271
図5:期首500万円から始まり、賞与月の6月に借入1,000万円を実行しているため大きく落ち込むことなく推移し、税金の中間納付が重なる11月〜1月にかけて残高が385→380万円まで細りますが、ここが年間で最も現金が薄い局面です。2月に月商2,000万円分の入金(12月のお歳暮売上の回収)が入り、一気に持ち直します。

6検証:利益と資金残高の増減が一致しない理由(5分)

目的:経常利益の年間合計(171万円)と、現金残高の年間の増減(500万円→1,271万円=771万円の増加)が一致しないことを確認し、その差額を項目ごとに説明できるようにします。

操作:どこか空いたセルに、経常利益から出発して現金の増減へたどり着く「橋渡し」の式を作ります。
X検証 — 経常利益から現金純増減への橋渡し
BC
50経常利益(年間合計、26行の合計)171
51+減価償却費(現金支出を伴わない費用)600
52±売掛金・買掛金の増減(運転資本)0
53+借入の実行1,000
54−借入の元金返済(200)
55−消費税・法人税等の中間納付(800)
56現金純増減(=50+51+52+53+54+55)771
図6:56行の771万円は期末現金1,271万円と期首現金500万円の差額と一致します。52行(運転資本の増減)が0なのは、期首・期末とも売掛金2,000万円・買掛金650万円で残高が同水準という、1年間まるごとで見た場合の単純化のためです。

同じ橋渡しを資金の谷である12月末時点で行うと運転資本の効果が見えます。4〜12月の経常利益累計185万円に減価償却450万円・借入実行1,000万円を足し中間納付800万円を引くと835万円ですが、実際の現金は期首500万円→12月末385万円で115万円の減少です。差の950万円は運転資本の増加(未回収の11・12月売上による売掛金増1,600万円−12月仕入による買掛金増650万円)で説明できます。年間で打ち消し合う運転資本の増減が、年の途中では950万円もの現金を寝かせている——これが12月の資金の谷の正体です。

遊んでみる:前提を動かす実験3つ

完成したモデルは、前提ブロック(青字)を書き換えて挙動を観察して初めて実務の道具になります。

  • 実験①:借入を実行しなかったら? 44行(E44)を1,000→0に、あわせて46行(M46)も200→0にします(借りていないのに2月の返済200だけ残るミスを避けるため)。12月末の現金残高は385万円→(585)万円まで沈み込み、資金がショートします。7月末で既に(220)万円まで落ちており、繁忙期の仕入負担だけでも単月では資金が持たないと分かります。12か月分を並べて初めて「6月に借りておく」判断ができます。
  • 実験②:回収サイトが2か月→3か月に延びたら? 取引先の資金繰り悪化を想定します。C4を3にするだけではE列のOFFSETがB列(項目名)を参照して壊れるため、前年度1月の売上高1,000を追加し、C・D・E列(4〜6月)の入金を前年度1・2・3月の売上に直接参照させ、F列(7月)以降だけOFFSETに付け替えます。組み直してC4を3にすると、1月末の現金残高は380万円→(220)万円に悪化します。CCC(キャッシュ・コンバージョン・サイクル)短縮の努力が資金繰りに直結する理由です。
  • 実験③:中間納付が想定より5割増えたら? C10を800→1,200に。11月末は1,130万円→730万円、12月末は385万円→(15)万円に転落します。中間納付は原則として前期(直前の課税期間)の確定税額を基準に決まるため、当期の繁忙期の業績とは関係なく、前期好調だった会社ほど大きな納付が来ます。繁忙期の仕入代金の支払いと重なると、資金の谷が一段深くなります。

実験②・③は損益計画(②)の営業利益・経常利益に一切影響せず、資金繰り表(③)だけが動きます。実験①でも営業利益(年間215万円)は変わらず、動くのは支払利息の分だけです(経常利益は171万円→215万円)。経常利益が年44万円動くだけなのに、現金残高は12月末で770万円近く動く——この振れ幅の差が、2つのブロックを分ける理由です。

よくあるミス

  • OFFSETの列方向の符号を逆にし、「Nか月前」のつもりが「Nか月後」を参照して不自然な値になる。
  • C・D列(前年度実績を直接参照している列)にもOFFSETをコピーし、空白のA列(黙って0になり気づきにくい)や項目名のB列(#VALUE!エラー)を参照してしまう。
  • 賞与や中間納付を発生ベース(②)と現金ベース(③)のどちらか一方にしか計上せず、あとで整合性が取れなくなる。
  • 借入の期首残高(42行)を前月末残高でなく固定値のままにし、ロールフォワードが崩れる。
  • 支払・返済をプラスの数値で置いて引き算する流儀と、マイナスの数値で置いてSUMする流儀を混ぜてしまい、支払額が二重に引かれたり足されたりする。符号のルールを先に1つに決めてから式を書くと防げます。

よくある質問(FAQ)

Q. 発生ベースの損益計画と現金ベースの資金繰りを、1つの表にまとめてはいけないのですか?

A. 技術的には可能ですが、混ぜると「この数字は利益か現金か」があとから分からなくなり検証もしにくくなります。ブロックを分けて発生→現金の変換過程を明示するのが実務の作法です。考え方自体は発生主義と現金主義の違いで確認してください。

Q. OFFSET関数は「揮発性関数」で重いと聞きました。使って大丈夫ですか?

A. 数百行程度の月次モデルなら問題になりません。行数が非常に多い大規模モデルでは再計算負荷が気になり、その際はINDEXへの置き換えが検討されます。E29なら=INDEX($C$18:$N$18,COLUMN()-COLUMN($C$18)+1-$C$4)で同じ計算ができます。

Q. 中間納付の金額はどう見積もればよいですか。

A. STEP1で触れたとおり、前事業年度の確定税額を基準に計算するのが原則です(詳しい時期・区分の考え方はSTEP1参照)。本チュートリアルの800万円という金額は説明用の仮の数字であり、実際の要否・金額・時期は事業年度や税額によって異なるため、税理士・所轄税務署に確認してください。

Q. 最低限確保しておきたい現金残高(ミニマムキャッシュ)はどう決めればよいですか。

A. 業種や与信条件で異なりますが、固定費の1〜2か月分を目安にする考え方があります(ミニマムキャッシュ)。本設例なら月次固定費300万円の1か月分=300万円が目安で、年間最低の1月末残高380万円はそれをわずか80万円上回るだけです。

Q. 借入の返済スケジュールにPMT関数を使わないのはなぜですか。

A. 本記事の借入は元金の返済額と返済月を直接入力する形(設例では2月に200万円を一括返済)のため、利息は残高×金利で計算するだけで足ります。毎月一定額の「元金均等返済」や返済額を一定にする「元利均等返済」を自動で組む場合はPMT・IPMT・PPMT関数が必要です。使い方はこの記事で確認できます。

まとめ

  • 損益計画(発生)と資金繰り表(現金)は別ブロックで設計し、回収・支払サイトはOFFSET(またはINDEX)で機械的にずらす。
  • 賞与月・納税月に生じる資金の谷は12か月分を並べて初めて見える。谷の深さから借入の実行月・金額を決め、返済スケジュールを接続する。
  • 年間の経常利益(171万円)と現金の純増減(771万円)は一致しないが、差額は減価償却・借入の実行と返済・中間納付・運転資本の増減という「利益計算に出てこない現金の動き」で過不足なく説明できる。

出典・参考(2026年9月確認)

  • 本記事の設例会社(架空の卸売業A社)の売上・仕入・賞与・借入等の数値はすべて説明用の仮設例であり、実在の企業・取引とは関係ありません。
  • 国税庁「C1-1 法人税、地方法人税及び防衛特別法人税の申告(法人税申告書別表等)」(確定申告書は事業年度終了の日の翌日から2か月以内、中間申告書は事業年度開始の日以後6か月を経過した日から2か月以内が原則であることを確認):https://www.nta.go.jp/taxes/tetsuzuki/shinsei/annai/hojin/shinkoku/01.htm
  • 国税庁タックスアンサー No.6609「中間申告の方法」(消費税の中間申告は、直前の課税期間の確定消費税額(地方消費税を除く)が48万円を超える事業者に義務があり、金額に応じて年1回・3回・11回の頻度、提出・納付期限は各対象期間の末日の翌日から2か月以内であることを確認):https://www.nta.go.jp/taxes/shiraberu/taxanswer/shohi/6609.htm

※本記事は教育目的の一般的な解説であり、法務・税務・投資助言ではありません。税務上の要否・金額・時期は事業年度や個々の税額によって異なるため、個別の判断は税理士・所轄税務署にご確認ください。設例の数値は理解のための仮設例です。