# 経営ダッシュボード 実装戦略 ## 現状分析 ### 既存シート構造 #### 1. 予算入力シート - 列構成: B列(項目) + C〜N列(2025-04〜2026-03の12ヶ月) + O列(期間累計) - 主要項目: - 売上高 (行6) - 売上原価 (存在しないため0とする) - 販売管理費 計 (各費用項目の合計) - 営業損益金額 - 経常損益金額 #### 2. 実績入力シート - Money Forward CSVデータ (B6〜T50) - 列構成: G〜R列(2025-04〜2026-03の12ヶ月) + S列(期間累計) - 主要項目: - 売上高 (行9) - 売上原価 (行12: 常に0) - 売上総損益金額 (行18) - 販売管理費 計 (行31) - 営業損益金額 (行32) - 経常損益金額 (行35) #### 3. 予実出力シート - 予算と実績を並べて表示 - 各月ごとに: 予算 | 実績 | 差異 | 達成率 #### 4. 経営ダッシュボード (新規作成) - 期首: 2025/4 (B4セル) - 締月: 2025/10 (C5セル) - 全ての数式が #REF! エラー --- ## 実装戦略 ### Phase 1: 基本設定の修正 **期首月と締月の設定** - 期首: `B4` = "2025/4" - 締月: `C5` = "2025/10" - これらの値を使って月のインデックスを計算 **月インデックス計算** ``` 期首月: 2025/4 → インデックス 1 (C列) 締月: 2025/10 → インデックス 7 (I列) ``` --- ### Phase 2: セクション1 - 年間予算 vs 締月地点実績 **場所**: C7〜E11 | 行 | 項目 | 年間予算 (C列) | 締月地点実績 (D列) | 達成率 (E列) | |----|------|---------------|------------------|------------| | 8 | 売上高 | 予算入力!O6 | 実績入力!G9〜M9の合計 | D8/C8 | | 9 | 売上総利益 | 予算入力!O6 | 実績入力!G18〜M18の合計 | D9/C9 | | 10 | 営業利益 | 計算式 | 実績入力!G32〜M32の合計 | D10/C10 | | 11 | 経常利益 | 計算式 | 実績入力!G35〜M35の合計 | D11/C11 | **計算ロジック**: 1. **年間予算 (C列)**: ``` C8: =予算入力!O6 // 売上高の期間累計 C9: =予算入力!O6 // 売上総利益 = 売上高 (売上原価が0のため) C10: =C9 - 予算入力の販管費計の期間累計 // 営業利益 C11: =C10 // 経常利益 = 営業利益 (営業外損益が0のため) ``` 2. **締月地点実績 (D列)** - 期首から締月までの累計: ``` D8: =SUM(実績入力!G9:M9) // 2025-04〜2025-10の売上高 D9: =SUM(実績入力!G18:M18) // 売上総利益 D10: =SUM(実績入力!G32:M32) // 営業損益 D11: =SUM(実績入力!G35:M35) // 経常損益 ``` 3. **達成率 (E列)**: ``` E8: =D8/C8 E9: =D9/C9 E10: =D10/C10 E11: =D11/C11 ``` --- ### Phase 3: セクション2 - 締月地点予算 vs 実績 **場所**: C13〜F17 | 行 | 項目 | 締月地点予算 (C列) | 締月地点実績 (D列) | 予実差 (E列) | 予実比 (F列) | |----|------|------------------|------------------|------------|------------| | 14 | 売上高 | 予算入力!C6〜I6の合計 | D8と同じ | D14-C14 | D14/C14 | | 15 | 売上総利益 | 同上 | D9と同じ | D15-C15 | D15/C15 | | 16 | 営業利益 | 計算式 | D10と同じ | D16-C16 | D16/C16 | | 17 | 経常利益 | 計算式 | D11と同じ | D17-C17 | D17/C17 | **計算ロジック**: 1. **締月地点予算 (C列)** - 期首から締月までの予算合計: ``` C14: =SUM(予算入力!C6:I6) // 2025-04〜2025-10の売上高予算 C15: =C14 // 売上総利益予算 C16: =C15 - 販管費予算の合計 // 営業利益予算 C17: =C16 // 経常利益予算 ``` 2. **締月地点実績 (D列)**: ``` D14: =D8 // セクション1の締月地点実績を参照 D15: =D9 D16: =D10 D17: =D11 ``` 3. **予実差 (E列)**: ``` E14: =D14-C14 E15: =D15-C15 E16: =D16-C16 E17: =D17-C17 ``` 4. **予実比 (F列)**: ``` F14: =D14/C14 F15: =D15/C15 F16: =D16/C16 F17: =D17/C17 ``` --- ### Phase 4: 収益性指標 **場所**: C20〜C22 | 行 | 指標 | 計算式 | |----|------|--------| | 20 | 売上総利益率 | D9/D8 (売上総利益/売上高) | | 21 | 営業利益率 | D10/D8 (営業利益/売上高) | | 22 | 経常利益率 | D11/D8 (経常利益/売上高) | **計算式**: ``` C20: =D9/D8 C21: =D10/D8 C22: =D11/D8 ``` --- ### Phase 5: 効率性指標 **場所**: C25〜D26 | 行 | 指標 | 比率 (C列) | 金額 (D列) | |----|------|-----------|-----------| | 25 | 販管費率 | 販管費/売上高 | 販管費 | | 26 | 人件費率 | 人件費/売上高 | 人件費 | **計算式**: ``` C25: =D25/D8 // 販管費率 D25: =SUM(実績入力!G31:M31) // 販管費計の締月地点実績 C26: =D26/D8 // 人件費率 D26: =SUM(実績入力!G20:M20) + SUM(実績入力!G21:M21) + SUM(実績入力!G22:M22) // 役員報酬 + 給料手当 + 法定福利費 ``` --- ### Phase 6: キャッシュフロー関連 **場所**: C29〜C33 | 行 | 項目 | 計算式 | |----|------|--------| | 29 | 現金残高 | 手入力 (既存: ¥51,740,149) | | 30 | グロスバーンレート | 販管費の月平均 | | 31 | ランウェイ(グロス) | 現金残高 / グロスバーンレート | | 32 | ネットバーンレート | 経常利益の月平均 (マイナス値) | | 33 | ランウェイ(ネット) | 現金残高 / ネットバーンレート | **計算式**: ``` C29: 51740149 // 手入力 C30: =D25/7 // 販管費 / 経過期間(7ヶ月) C31: =C29/C30 // 現金残高 / グロスバーンレート C32: =D11/7 // 経常利益 / 経過期間(7ヶ月) // マイナスの場合、現金が減少している C33: =IF(C32<0, C29/ABS(C32), "∞") // 経常利益がマイナスの場合のみ計算 ``` --- ### Phase 7: その他指標 **場所**: C36〜C37 | 行 | 指標 | 計算式 | |----|------|--------| | 36 | 損益分岐点売上高 | 固定費 / (1 - 変動費率) | | 37 | 損益分岐点比率 | 損益分岐点売上高 / 実績売上高 | **簡易計算式** (全て固定費と仮定): ``` C36: =D25 // 販管費を固定費として、売上原価が0のため // 損益分岐点売上高 ≒ 販管費 C37: =C36/D8 // 損益分岐点比率 ``` --- ## データ参照マップ ### 予算入力シート ``` O列: 期間累計 (年間予算として使用) C〜I列: 2025-04〜2025-10の月別予算 (締月地点予算として使用) 主要行: - 6行: 売上高 - 販管費計の行を特定する必要あり ``` ### 実績入力シート ``` G〜M列: 2025-04〜2025-10の月別実績 (締月地点実績として使用) S列: 期間累計 主要行: - 9行: 売上高 - 18行: 売上総損益金額 - 20行: 役員報酬 - 21行: 給料手当 - 22行: 法定福利費 - 31行: 販売管理費 計 - 32行: 営業損益金額 - 35行: 経常損益金額 ``` --- ## 実装方法の選択肢 ### オプション 1: Google Apps Script で自動化 **メリット**: - Code.gs に関数を追加して「ダッシュボードを更新」メニューを作成 - 予実シート更新と同時にダッシュボードも更新可能 - トリガーで自動更新可能 **実装例**: ```javascript function updateDashboard() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const dashboard = ss.getSheetByName('経営ダッシュボード'); const budgetSheet = ss.getSheetByName('予算入力'); const actualSheet = ss.getSheetByName('実績入力'); // 各セルに数式を設定 dashboard.getRange('C8').setFormula('=予算入力!O6'); dashboard.getRange('D8').setFormula('=SUM(実績入力!G9:M9)'); // ... 以下同様 } ``` ### オプション 2: 直接数式を入力 **メリット**: - スプレッドシートに直接数式を入力 - リアルタイムで自動計算 - Apps Script不要 **デメリット**: - 手動入力が必要 - ミスが発生しやすい --- ## 推奨実装手順 1. **Apps Script に updateDashboard() 関数を追加** 2. **メニューに「ダッシュボードを更新」を追加** 3. **updateBudgetVsActual() から updateDashboard() を呼び出す** 4. **予実シート更新時に自動でダッシュボードも更新** --- ## 注意事項 1. **締月の変更**: - C5セルの締月を変更すると、自動的に対応する列を参照するように調整が必要 - 現時点では固定値(2025/10 = 7ヶ月目)で実装 2. **期間累計の計算**: - 実績入力シートのS列(期間累計)は全期間(12ヶ月)の合計 - 締月地点実績はG〜M列(7ヶ月)のSUMで計算 3. **販管費の特定**: - 予算入力シートで販管費計の行番号を確認する必要あり - 実績入力シートでは31行目 4. **数式のエラーハンドリング**: - 0除算エラーを防ぐため IFERROR() を使用 - 例: `=IFERROR(D8/C8, 0)` --- **作成日**: 2025-12-26 **作成者**: Claude Code