1. 概要

焦点質問: 今月の現金はどこから入り、どこに出たか?

間接法C/F計算書は、P/LB/Sの増減から営業・投資・財務の3区分のキャッシュフローを算出し、期末現金残高がB/S現預金と完全一致することを保証する。

項目内容
出力タブ (実績)81_cf_indirect, 81b_cf_indirect_ytd
出力タブ (計画)82_cf_indirect_plan, 82b_cf_indirect_plan_ytd
関数dmCalcCf_, dmBuildCfOutput_
ファイル605_datamart_cf.js

関連する日次CF仕様

日次資金繰り (83/84/85タブ) は別仕様書 spec_daily_cf を参照。


2. データソース

ソース読み込み条件用途
ctx.sectionTotalsPldmCalcPl_ 完了後税引前当期純利益、法人税等
ctx.depMonthlydmCalcPl_ 完了後減価償却費(非資金費用の足戻し)
ctx.bsSecTotaldmCalcBs_ 完了後B/Sセクション別残高(投資・財務活動の増減算出)
ctx.flowCa_OpdmCalcBs_ 完了後流動資産(営業)のフロー増減
ctx.flowCl_OpdmCalcBs_ 完了後流動負債(営業)のフロー増減
ctx.flowCl_FindmCalcBs_ 完了後流動負債(財務)のフロー増減
ctx.cashPlugdmCalcBs_ 完了後現預金プラグ残高(期首・各月末)

旧 (V1) → 新 (V2) の変更(日次CF部分)

項目V1V2
CF実績ソース42_trn_journal33_wrk_bank
金額列税込金額_計画税込金額_決済 + 差額(手数料等)
日付決済日_実績 > 決済日_計画 > 発生日決済日_実績
noCash判定決済手段で判定不要(33タブは全て実際の入出金)

3. 対象判定・フィルタ条件

間接法C/F (81/82) は P/L・B/S の集計結果から間接的に算出するため、個別行レベルのフィルタ条件は不要。前段の dmCalcPl_ / dmCalcBs_ で確定した ctx の値をそのまま使用する。

#条件処理理由
F1dmCalcPl_ 未完了C/F計算不可P/Lセクション合計が必要
F2dmCalcBs_ 未完了C/F計算不可B/Sフロー・cashPlugが必要

33_wrk_bank スキーマ(日次CF用)

日次CF (83/84/85タブ) では 33_wrk_bank を直接読み込む。フィルタ条件の詳細は spec_daily_cf を参照。

#ヘッダー名CFでの用途
1A有効フラグFALSE → SKIP
2B決済ID(STL)管理ID
3C消込対象請求ID(INV)INV参照(取引先・PJ名取得用)
4D決済日_実績CF計上日
5E決済ステータス"消込済" のみ対象
6F入出金区分入金 / 出金
7G決済口座表示用
8H取引先名表示用
9I税込金額_決済メイン金額
10J差額(手数料等)差額金額(振込手数料等)
11K差額処理科目差額の勘定科目
12L摘要表示用
13M自動仕訳JNL_IDAction B で書き込まれた TRN_ID

4. 処理ロジック

4.1 間接法C/F計算 (dmCalcCf_)

項番処理フェーズ入力(論理名)入力(物理名)処理詳細 / 変換ロジック出力(論理名)出力(物理名)
C1営業CF算出税引前利益, 減価償却費, 流動資産増減, 流動負債増減, 法人税等ctx.sectionTotalsPl, ctx.depMonthly, ctx.flowCa_Op, ctx.flowCl_Op月別: cfOp[i] = 税引前利益 + 減価償却費 − 流動資産増減(営業) + 流動負債増減(営業) − 法人税等営業CFctx.cfOp
C2投資CF算出固定資産残高, 繰延資産残高, 減価償却費ctx.bsSecTotal['asset_nca'], ctx.bsSecTotal['asset_def'], ctx.depMonthly月別: cfInv[i] = −(固定資産増減 + 繰延資産増減 + 減価償却費)投資CFctx.cfInv
C3財務CF算出固定負債残高, 資本金残高, 流動負債増減(財務)ctx.bsSecTotal['liab_ncl'], ctx.bsSecTotal['eq_cap'], ctx.flowCl_Fin月別: cfFin[i] = 固定負債増減 + 資本金増減 + 流動負債増減(財務)財務CFctx.cfFin
C4純増減額営業CF, 投資CF, 財務CFctx.cfOp, ctx.cfInv, ctx.cfFincfNet[i] = cfOp[i] + cfInv[i] + cfFin[i]純増減額ctx.cfNet
C5法人税等法人税, 自動計算法人税(国税/地方税)ctx.sectionTotalsPl['tax', 'auto_tax_national', 'auto_tax_local']taxOnly[i] = −(法人税 + 自動国税 + 自動地方税)法人税支払額ctx.taxOnly
C6期首/期末残高現預金プラグctx.cashPlugcashStart[i] = cashPlug[i-1], cashEnd[i] = cashPlug[i]期首/期末ctx.cashStart, ctx.cashEnd
C7通期合計各月配列cfOp〜cashEndarr[0] = arr[1..12].sum() ※ cashStart[0]=cashStart[1], cashEnd[0]=cashEnd[12]通期列各配列[0]

4.2 出力配列構築 (dmBuildCfOutput_)

項番処理内容
O1単月配列構築ヘッダー行 + 営業/投資/財務の各セクション行を pushCf で積み上げ。B列にスナップショット関数 (INDEX/MATCH) を埋め込み
O2YTD配列構築各行を dmToYtdArray_ で累積変換。期末残高行のみ累積ではなく cashEnd をそのまま使用
O3戻り値{ outC, fmtC, outCY, fmtCY } を返却し、呼び出し元 (dmRenderFs_) がシートに書き出す

5. 財務ロジック (FRD)

※ 本セクションは経理担当・CFOが検証可能な表現で記述。技術用語は使用しない。 → 技術詳細: SS4 参照

5.1 営業活動・投資活動・財務活動の分類

区分含まれる項目増減の意味
営業活動 CF税引前純利益 + 減価償却 + 流動資産増減(逆符号)+ 流動負債増減 − 法人税支払本業の稼ぎから現金
投資活動 CF固定/繰延資産の取得・売却設備・ソフトウェア投資
財務活動 CF借入増減 + 資本金増減 + 流動負債(財務区分)増減資金調達・返済

5.2 間接法の調整項目

間接法では税引前当期純利益を出発点とし、以下の調整を行う。

調整項目加減理由
減価償却費加算(+)P/Lに費用計上されるが現金支出を伴わない(非資金費用)
流動資産(営業)の増加減算(−)売掛金の増加は現金未回収を意味する
流動負債(営業)の増加加算(+)買掛金の増加は現金未払いを意味する
法人税等の支払額減算(−)実際の現金流出

5.3 期末現金残高の整合性

期末現金残高 = 期首残高 + 営業CF + 投資CF + 財務CF

この値は B/S の現預金残高 (cashPlug) と完全一致しなければならない。不一致はB/S計算のエラーを示す。


6. 出力スキーマ

81_cf_indirect / 82_cf_indirect_plan(単月)

セクション表示区分行名符号フォーマット
1. 営業活動CFmega_header■ 1. 営業活動によるキャッシュフロー
account税引前当期純利益そのまま数値
account減価償却費 (非資金費用の足戻し)そのまま数値
account売掛金・その他流動資産の増減(△=増)反転(−flowCa_Op)数値
account仕入債務・その他流動負債の増減(+=増)そのまま数値
account法人税等の支払額負数数値
total_ope営業活動C/F 小計そのまま数値
2. 投資活動CFmega_header■ 2. 投資活動によるキャッシュフロー
account固定資産の取得等 (△は増加)そのまま数値
total_inv投資活動C/F 小計そのまま数値
3. 財務活動CFmega_header■ 3. 財務活動によるキャッシュフロー
account借入金・資本金等の増減額 (+は増加)そのまま数値
total_fin財務活動C/F 小計そのまま数値
合計profit現金及び現金同等物の増減額そのまま数値
subtotal+ 期首残高 (前月末の現預金)そのまま数値
cash_plug期末現金残高 (B/S現預金と完全一致)そのまま数値

列構成: A列=項目名, B列=選択月スナップ(INDEX/MATCH), C列=空白, D列=通期合計, E〜P列=月別(実績/予算ラベル付)

81b_cf_indirect_ytd / 82b_cf_indirect_plan_ytd(YTD累積)

上記と同じ行構成。各月の値は dmToYtdArray_ で1月からの累積値に変換される。ただし期末現金残高行のみ累積ではなく当月の cashEnd をそのまま表示する。


7. エッジケース・境界条件

7.1 42_trn_journal との違い(設計判断)

観点旧 (42_trn_journal)新 (33_wrk_bank)
データ粒度仕訳行(P/L・B/S混在)決済行(入出金のみ)
noCash判定必要(仕訳振替を除外)不要(全行が実際の入出金)
科目分類dmGetCashImpact_ で複雑な判定入出金区分で直接判定
差額(手数料)TRN行として別途存在STL行の差額列に内包
決済日決済日_実績 > 計画日 のフォールバック決済日_実績 一本

※ 上記は日次CF (83/84/85タブ) に関する設計判断。間接法C/F (81/82) はP/L・B/Sの増減から算出するため 33_wrk_bank を直接参照しない。

7.2 間接法固有のエッジケース

ケース条件処理
自動計算法人税が未設定sectionTotalsPl['auto_tax_national'] が undefined|| Array(13).fill(0) でゼロ配列にフォールバック
期首月のcashStarti=1cashStart[1] = cashPlug[0] = 期首現預金
通期cashStart/cashEndi=0cashStart[0] = cashStart1, cashEnd[0] = cashEnd12
減価償却費の二重計上防止投資CF算出時cfInv に depMonthly を加算して、営業CFでの足戻しと相殺

8. テスト仕様

テストデータによるCF集計結果(日次CF部分)

入力: 33_wrk_bank (消込済STL)

現時点ではSTL消込データがないため、CFイベントは 0件

STL消込後の期待値

決済日取引先入金出金残高変動備考
2025-12-25角会計事務所22,000-22,000給与支払い
2026-01-10武生税務署42-42源泉所得税納付

※ 仕訳振替のINV(雑収入・預り金計上)はSTL消込されないため、CFに一切出ない。

間接法C/Fの検証項目

テストIDテスト名前提条件期待結果
CF-T01営業CF算出P/L・B/S計算完了税引前利益+償却費−流動資産増+流動負債増−法人税 と一致
CF-T02投資CF算出B/S計算完了−(固定資産増+繰延資産増+償却費) と一致
CF-T03財務CF算出B/S計算完了固定負債増+資本金増+流動負債(財務)増 と一致
CF-T04期末残高一致C/F計算完了期首残高+営業CF+投資CF+財務CF = B/S現預金 (cashPlug)
CF-T05通期合計C/F計算完了arr[0] = arr[1..12] の合計
CF-T06YTD累積C/F出力構築完了各月YTD値 = 1月〜当月の累積。期末残高行は非累積

付録A: 実装変更の影響範囲

ファイル変更内容
605_datamart_cf.jsdmCalcCf_: 間接法C/F算出, dmBuildCfOutput_: 出力配列構築
606_datamart_daily_cf.jsdmBuildDailyCashflow_: 実績CF (33_wrk_bank → 85タブ)
606_datamart_daily_cf.jsdmBuildPlanCashflow_: 計画CF (32_wrk_invoice → 83/84タブ)
606_datamart_daily_cf.jsdmGetCashImpact_: 予算データ用のキャッシュインパクト判定
602_datamart_main.jsdmBuildDailyCashflow_ / dmBuildPlanCashflow_ の呼び出し
608_datamart_render.jsdmRenderFs_ で outC/fmtC/outCY/fmtCY をシートに書き出し

付録B: 出力タブ一覧

タブ関数ソース用途
81_cf_indirectdmBuildCfOutput_ (実績ctx)P/L・B/S実績間接法C/F(単月)
81b_cf_indirect_ytddmBuildCfOutput_ (実績ctx)同上間接法C/F(YTD)
82_cf_indirect_plandmBuildCfOutput_ (計画ctx)P/L・B/S計画間接法C/F計画(単月)
82b_cf_indirect_plan_ytddmBuildCfOutput_ (計画ctx)同上間接法C/F計画(YTD)
83_cf_dailydmBuildPlanCashflow_32_wrk_invoice (承認済)計上済INVベースの資金繰り
84_cf_daily_plandmBuildPlanCashflow_32_wrk_invoice (全INV) + 33_wrk_bank未決済残高ベース + 実績STLのハイブリッド
85_cf_daily_actualdmBuildDailyCashflow_33_wrk_bank (消込済)確定した入出金の実績