萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 辦公室軟體 >  >> Excel 教學 >> Excel 綜合

Excel 分類彙總實戰:每 N 列小計 + 總計 — 輔助欄 + 分類彙總法

需求:資料每 21 列需小計 (每 20 筆資料一組),最後再來個總計。手動插入列太瘋狂?用「輔助欄分組編號 + 資料 ▸ 分類彙總」自動化搞定!

🛠 步驟詳解

  1. 新增輔助欄 在資料表最右側加一欄,標題如「分組號」。
  2. 輸入分組公式 第一列資料列 (假設第 2 列) 輸入:
    =INT((ROW()-2)/20)+1
    • ROW() 取得當前列號。
    • -2 扣除標題列 (第 1 列) 與起始偏移。
    • /20 每 20 筆一組 (題目每 21 列含小計列,實際資料 20 列)。
    • INT() 取整數 → 1,1,1…(20 個 1)、2,2,2…(20 個 2)。
    • +1 讓組號從 1 開始。
  3. 填滿輔助欄 雙擊儲存格右下角填充控制代碼 (或拖曳) 向下複製至資料尾列。
  4. 執行分類彙總
    資料 ▸ 大綱 ▸ 分類彙總 (Excel 2003:資料 ▸ 分類彙總):
      • 「分類欄位」選 輔助欄 (分組號)。
      • 「彙總方式」選 加總。
      • 「選取彙總項目」勾選所有需加總的數值欄。
      • 取消勾選「取代目前的副總計」 (視需求)。
      • 確定。
  5. 結果:每 20 列資料後自動插入一列小計 (加總),最底端再加一列總計。左側出現大綱符號 1/2/3 可摺疊/展開。
  6. 美化:右鍵輔助欄標題 → 「隱藏」 (或群組摺疊),不列印輔助欄。

🔧 公式變體 (依實際起始列調整)

資料起始列公式說明
第 2 列 (標題佔第 1 列)=INT((ROW()-2)/20)+1本文範例
第 1 列 (無標題)=INT((ROW()-1)/20)+1
第 N 列=INT((ROW()-N)/20)+1N 為資料起始列號
每 N 筆一組=INT((ROW()-起始列)/N)+1將 20 改為 N

💡 進階應用

  • 多層彙總: 先按大區域分組 (輔助欄 1),再按小區域 (輔助欄 2),執行兩次分類彙總,產生兩層小計。
  • 彙總方式不只加總: 可選平均、計數、最大/最小值、標準差等。
  • 移除彙總: 資料 ▸ 分類彙總 ▸ 移除全部 還原原始資料。
  • 複製僅可見儲存格 (小計列): 選取區域 → Alt+; (僅選取可見) → 複製貼上他處。

⚠️ 注意事項

  • 資料**必須依輔助欄排序** (本例已自然排序),否則分類彙總會產生錯誤群組。
  • 合併儲存格區域無法直接分類彙總,需先取消合併。
  • Excel 表格 物件 (Ctrl+T) 內不支援分類彙總,需轉換為範圍。

🆕 現代替代方案 (Excel 365/2021+):

使用動態陣列公式一次產生含小計/總計的完整報表,無需改動原始資料:

=LET(
    data, A2:D100,           // 原始資料區域
    n, 20,                   // 每組筆數
    grp, INT((SEQUENCE(ROWS(data))-1)/n)+1,  // 產生分組號陣列
    u, UNIQUE(grp),          // 唯一分組號
    subtotals, MAP(u, LAMBDA(g, SUM(FILTER(data, grp=g)))), // 各組小計
    total, SUM(data),        // 總計
    VSTACK(                  // 垂直堆疊
        HSTACK(data, grp),   // 原始資料+分組號 (可隱藏)
        HSTACK(subtotals, u),// 小計列
        HSTACK(total, "總計") // 總計列
    )
)

優點:原始資料不動、自動溢出、參數化修改 N 即時更新、無輔助欄殘留。

無論傳統分類彙總或現代動態陣列,核心邏輯都是「分組編號 → 群組彙總」,掌握其中任一種,定期報表製作不再手忙腳亂!

copyright © 萬盛學電腦網 all rights reserved