在 Excel 中,如果你需要針對「可見資料」或「篩選後的資料」進行加總、平均、計數等統計,SUBTOTAL 函數是最靈活的選擇。
一、SUBTOTAL 函數是什麼?基本語法與用途
SUBTOTAL 函數可根據指定的統計類型,對一組資料進行加總、平均、計數等運算。它能排除隱藏列或篩選後的資料,適合用在動態報表與分類統計中。
語法:=SUBTOTAL(函數代碼, 範圍)
- 函數代碼:指定要執行的統計類型(例如 9 表示加總,1 表示平均)
- 範圍:要進行統計的儲存格範圍
二、實際應用範例:多場景教學
範例一:加總篩選後的銷售額
=SUBTOTAL(9, B2:B100)
代碼 9 表示加總,會排除被篩選隱藏的列。
範例二:計算平均值(可排除隱藏列)
=SUBTOTAL(1, C2:C50)
代碼 1 表示平均值,適合用在動態報表中。
範例三:統計可見資料筆數
=SUBTOTAL(103, A2:A200)
代碼 103 表示「COUNTA(排除隱藏列)」,可統計非空白儲存格數量。
範例四:統計篩選後的訂單數量
=SUBTOTAL(2, D2:D100)
代碼 2 表示 COUNT(計數),只計算數值儲存格。
範例五:搭配自動篩選功能使用
當你在資料表啟用篩選後,SUBTOTAL 可自動排除隱藏列,讓統計結果隨篩選條件即時更新。
三、注意事項與常見錯誤排除
- SUBTOTAL 的函數代碼分為兩類:
- 1–11:包含隱藏列(例如手動隱藏)
- 101–111:排除隱藏列(例如篩選後隱藏)
- 常用代碼對照表:

- SUBTOTAL 不會計算其他 SUBTOTAL 函數的結果(避免重複統計)
- 若範圍中包含錯誤值(如 #VALUE!),可能導致公式失敗
- SUBTOTAL 不支援條件統計,若需根據條件統計,請搭配 FILTER 或 IF 函數
四、常見問題 Q&A
Q1:SUBTOTAL 和 SUM 有什麼差別? SUM 會加總所有資料,SUBTOTAL 可排除隱藏列,適合動態報表。
Q2:SUBTOTAL 可以搭配條件嗎? 本身不支援條件,但可搭配 FILTER
或 IF
處理,例如:
=SUBTOTAL(9, FILTER(A2:A100, B2:B100="業務部"))
Q3:SUBTOTAL 可以處理多個範圍嗎? 只能處理單一範圍,若需多段統計,請使用多個 SUBTOTAL 或搭配其他函數。
五、延伸學習:進階報表與統計技巧
SUBTOTAL 是動態報表的核心工具,進一步你可以學習:
- AGGREGATE 函數:支援更多統計類型與錯誤排除選項
- FILTER 函數:根據條件篩選資料後再統計
- IF + SUM:自訂條件加總,適合進階報表設計
這些技巧適合用在分類報表、動態統計、篩選分析等進階場景。
六、結語與延伸閱讀
SUBTOTAL 函數是 Excel 中最靈活的分段統計工具之一,適合用在動態報表、分類統計、篩選分析等情境。學會 SUBTOTAL 後,你可以進一步探索:
- [AGGREGATE 函數教學:進階統計與錯誤處理工具]
- [FILTER 函數教學:動態篩選資料的新方式]
- [IF 函數教學:邏輯判斷與條件控制]