# エラー修正: 範囲の列数エラー ## 🔴 発生したエラー ``` セクション1でエラー: 範囲の列数には 1 以上を指定してください。 Exception: 範囲の列数には 1 以上を指定してください。 at sumRangeDebug (コード:436:23) ``` ## 🔍 原因 **月数の計算結果が 0 以下になっている** 計算式: ```javascript startCol = 7; // G列(実績入力シートの2025-04列) endCol = startCol + monthsElapsed - 1; rangeWidth = endCol - startCol + 1; // ← これが 0 以下 ``` 例: - monthsElapsed = 0 の場合 - startCol = 7 - endCol = 7 + 0 - 1 = 6 - rangeWidth = 6 - 7 + 1 = 0 ❌ エラー! - monthsElapsed = -5 の場合 - startCol = 7 - endCol = 7 + (-5) - 1 = 1 - rangeWidth = 1 - 7 + 1 = -5 ❌ エラー! **月数が正しく計算されない原因:** 1. 経営ダッシュボードのC4(期首月)またはC5(締月)が空白 2. 形式が正しくない(例: "2025/4" ではなく "2025-4" など) 3. 期首月 > 締月(逆になっている) 4. スラッシュが全角になっている("2025/4" など) --- ## ✅ 修正内容 ### 1. 月数計算の検証を追加 `getMonthsElapsed()` 関数を強化: - ✅ 値が空でないかチェック - ✅ スラッシュ `/` が含まれているかチェック - ✅ 数値に変換できるかチェック - ✅ 詳細なログ出力 - ✅ エラー時にわかりやすいメッセージ ### 2. 月数の妥当性チェック `updateDashboardInternalDebug()` に追加: ```javascript if (monthsElapsed < 1 || monthsElapsed > 12) { throw new Error( `月数が異常です: ${monthsElapsed}ヶ月\n\n` + `期首月 (C4): "${startMonth}"\n` + `締月 (C5): "${endMonth}"\n\n` + `期首月と締月を以下の形式で設定してください:\n` + `- 形式: "2025/4" または "2025/04"\n` + `- 期首月 < 締月 である必要があります\n` + `- 月数は 1〜12 の範囲である必要があります` ); } ``` ### 3. 範囲取得前のチェック `sumRangeDebug()` 関数に追加: ```javascript if (rangeWidth < 1) { throw new Error( `列範囲が不正です。\n` + `項目: ${label}\n` + `行: ${row}\n` + `開始列: ${startCol}\n` + `終了列: ${endCol}\n` + `計算された列数: ${rangeWidth}\n\n` + `これは期首月と締月の設定に問題がある可能性があります。` ); } ``` --- ## 🚀 次のステップ ### ステップ1: 修正版デバッグコードをデプロイ 1. Google Spreadsheet を開く 2. 「拡張機能」→「Apps Script」 3. `Code.gs` の内容を全て削除 4. 修正版 `Code-debug.gs` の内容をコピー&ペースト 5. 保存 (Ctrl+S) 6. スプレッドシートを再読み込み ### ステップ2: 再度実行 メニュー「📈 経営ダッシュボードを更新 (DEBUG)」を実行 **今回は、より詳細なエラーメッセージが表示されます:** 例1: 期首月・締月が空の場合 ``` 期首月または締月が設定されていません。 期首月 (C4): "" 締月 (C5): "" ``` 例2: 形式が正しくない場合 ``` 期首月または締月の形式が正しくありません。 期首月 (C4): "2025-4" 締月 (C5): "2025-10" 正しい形式: "2025/4" または "2025/04" ``` 例3: 月数が異常な場合 ``` 月数が異常です: -5ヶ月 期首月 (C4): "2025/10" 締月 (C5): "2025/4" 期首月と締月を以下の形式で設定してください: - 形式: "2025/4" または "2025/04" - 期首月 < 締月 である必要があります - 月数は 1〜12 の範囲である必要があります ``` ### ステップ3: エラーメッセージを確認 エラーメッセージに表示された内容をお知らせください。 特に以下の情報が必要です: - 期首月 (C4) の実際の値 - 締月 (C5) の実際の値 - 計算された月数 --- ## 🛠️ 想定される修正方法 ### パターン1: C4, C5 が空白の場合 **修正方法:** 1. 経営ダッシュボードシートを開く 2. C4セルに `2025/4` と入力 3. C5セルに `2025/10` と入力 4. 再度実行 ### パターン2: 形式が間違っている場合 **間違った形式:** - `2025-4` (ハイフン) - `2025.4` (ドット) - `2025年4月` (日本語) - `Apr 2025` (英語) - `2025/4` (全角) **正しい形式:** - `2025/4` ✅ - `2025/04` ✅ ### パターン3: 期首と締月が逆の場合 **間違い:** - C4: `2025/10` (期首) - C5: `2025/4` (締月) - 結果: -5ヶ月 ❌ **正しい:** - C4: `2025/4` (期首) - C5: `2025/10` (締月) - 結果: 7ヶ月 ✅ ### パターン4: 年をまたいでいる場合 **正しい設定:** - C4: `2025/4` (期首: 2025年4月) - C5: `2026/3` (締月: 2026年3月) - 結果: 12ヶ月 ✅ 計算: ``` (2026 - 2025) * 12 + (3 - 4) + 1 = 1 * 12 + (-1) + 1 = 12 ``` --- ## 📋 チェックリスト 修正前に以下を確認してください: - [ ] 経営ダッシュボードシートが存在する - [ ] C4セルに期首月が入力されている - [ ] C5セルに締月が入力されている - [ ] 形式が `YYYY/M` または `YYYY/MM` である - [ ] スラッシュが半角 `/` である - [ ] 期首月 < 締月 である - [ ] 月数が 1〜12 の範囲である --- ## 🔄 問題解決後 問題が解決したら: 1. 通常版 `Code.gs` に修正を反映 2. エラーハンドリングを保持 3. 本番環境にデプロイ --- **作成日**: 2025-12-26 **原因**: 期首月・締月の設定不備 **修正内容**: 月数計算の検証強化