使用 SUBTOTAL 公式進行動態計算的完整指南

主要重點:

  • 在 Excel 中建立動態摘要(例如篩選後的總計)傳統上需要掌握像 SUBTOTAL() 及其數字函數代碼這樣的複雜公式,這對非技術使用者來說是個障礙。
  • Excelmatic 完全繞過了公式的複雜性,讓您只需用簡單的語言提問,就能獲得篩選後的總計和平均值。
  • SUBTOTAL() 不同(例如,無法進行跨工作表分析、容易出錯),Excelmatic 能輕鬆處理複雜情境,提供一種更直觀、更強大的方式來執行動態資料分析。
  • 對於需要從篩選或分段資料中快速獲得準確洞察,但又不想學習公式語法的專業人士來說,Excelmatic 是最有效的解決方案。

Excel 使用者經常需要靈活的方式來彙總資料,這些方式要能回應篩選或分組。傳統的函數如 SUM()AVERAGE()COUNT() 是根據範圍內的所有儲存格計算結果,無論某些列是否被隱藏或篩選掉。

幾十年來,SUBTOTAL() 函數一直是首選解決方案,它提供了一種動態替代方案,能根據當前可見內容自動調整其計算。然而,掌握它需要理解複雜的語法和函數代碼。如今,現代的AI 工具提供了一條更簡單的途徑來獲得相同結果,讓您可以使用簡單語言而非公式

在本指南中,我們將涵蓋這兩種方法。我們將全面解析強大的 SUBTOTAL() 函數,然後展示像 Excelmatic 這樣的 AI 代理如何能在極短時間內實現相同的動態計算。

Excel 中的 SUBTOTAL() 函數是什麼?

SUBTOTAL() 函數計算資料集的彙總值,例如總和、平均值、計數和其他統計運算。它與標準 Excel 函數的不同之處在於其動態工作方式——根據可見或篩選的內容改變其結果。根據您指定的函數編號,該函數可以忽略手動隱藏的列和透過篩選隱藏的列。

當您對資料套用篩選或手動隱藏某些列時,SUBTOTAL() 會自動調整其計算,僅包含可見的儲存格。這種行為使其成為在篩選資料集中建立摘要列、建構互動式儀表板或產生需要根據使用者選擇更新的報告的絕佳選擇。

該函數支援與 Excel 標準函數相同的統計運算——包括總和、平均值、計數、最大值、最小值和其他幾種——但它們被打包成一個單一的、具有情境感知能力的函數,能適應您資料的當前狀態。

語法和支援的運算

SUBTOTAL() 函數遵循一個簡單的語法結構:

=SUBTOTAL(function_num, ref1, [ref2], ...)

第一個參數 function_num 決定了計算類型以及函數處理隱藏列的方式。其餘參數(ref1ref2 等)是您要包含在計算中的儲存格範圍。您最多可以指定 254 個不同的範圍。

函數編號根據其處理手動隱藏列的方式分為兩個不同的類別:

函數編號 運算 包含手動隱藏的列 排除手動隱藏的列
1 / 101 平均值 1 101
2 / 102 計數 2 102
3 / 103 計數非空值 3 103
4 / 104 最大值 4 104
5 / 105 最小值 5 105
6 / 106 乘積 6 106
7 / 107 標準差(樣本) 7 107
8 / 108 標準差(母體) 8 108
9 / 109 總和 9 109
10 / 110 變異數(樣本) 10 110
11 / 111 變異數(母體) 11 111

函數編號 1-11 在其計算中包含手動隱藏列的儲存格,而函數編號 101-111 則排除它們。然而,這兩個範圍總是忽略被篩選隱藏的列

例如,SUBTOTAL(9, A2:A10) 計算 A2:A10 的總和,包含任何手動隱藏的列,而 SUBTOTAL(109, A2:A10) 則從總和計算中排除手動隱藏的列。在這兩種情況下,篩選掉的列都會自動從結果中排除。

動態計算實戰:兩種方法

讓我們透過一個包含電子產品和家具店銷售資料的實際範例,看看如何計算篩選資料的摘要。

SUBTOTAL function in Excel 1

我們的樣本資料包含兩個類別的七種產品。在未套用任何篩選的情況下,SUBTOTAL(109,C2:C8) 公式和常規的 SUM(C2:C8) 公式顯示相同的結果:3525(所有銷售額的總和)。

現在,讓我們篩選資料,僅顯示「Electronics」產品。

filtering a dataset with SUBTOTAL 2

方法 1:傳統的 SUBTOTAL() 公式

套用篩選後,請注意我們計算結果的關鍵差異:

  • SUBTOTAL 公式顯示 3000 - 自動調整為僅加總可見的「Electronics」列。
  • 常規 SUM 公式仍顯示 3525 - 繼續包含隱藏的「Furniture」項目。

這個並排比較展示了 SUBTOTAL() 的核心優勢:它能動態回應篩選,這對於製作回應式報告至關重要。

方法 2:AI 驅動的 Excelmatic 方法

excelmatic

無需編寫和除錯公式,您只需提問即可獲得相同結果。使用像 Excelmatic 這樣的 AI 代理,過程要簡單得多:

  1. 上傳您的 Excel 檔案。

  2. 用簡單語言提問。 對於此範例,篩選後,您可以問:

    可見資料的「Sales」欄總和是多少?

Excelmatic 會立即分析可見資料並給您答案:3000

result

對比很明顯:SUBTOTAL() 要求您知道正確的語法和函數編號(是 9 還是 109?)。Excelmatic 能從自然語言理解您的意圖,無需任何公式知識即可提供相同準確、動態的結果。

SUBTOTAL() 如何處理隱藏和篩選的資料

SUBTOTAL() 函數以特定方式處理不同類型的隱藏資料,因此在建構公式時理解這些行為至關重要。

SUBTOTAL() 與篩選掉的列

當您對資料集套用篩選時,SUBTOTAL() 總是從其計算中排除被篩選掉的列,無論您使用哪個函數編號。這種行為是自動的,並且在所有函數編號(1-11 和 101-111 範圍)中保持一致。

SUBTOTAL() 與手動隱藏的列

手動隱藏的列根據您選擇的函數編號以不同方式處理。當您右鍵點選列號並選擇「隱藏」時,您就是在手動隱藏這些列。

  • 使用函數編號 1-11 會包含這些手動隱藏的列在計算中。
  • 使用函數編號 101-111 會排除它們。

這為您提供了細粒度控制,但這是需要記住的另一層複雜性。相比之下,AI 工具通常根據視覺上呈現的內容進行計算,或者您可以在提示中指定「包含手動隱藏的列」以獲得更直接的控制。

SUBTOTAL() 與水平和垂直範圍

SUBTOTAL() 函數最適合處理垂直資料範圍(資料欄)。雖然它可以處理水平範圍,但其隱藏行為針對基於列的操作進行了優化,因為 Excel 的篩選和列隱藏功能是垂直工作的。

當您在同一範圍內巢狀 SUBTOTAL() 公式時,該函數會自動跳過其他 SUBTOTAL() 結果以避免重複計算。這對於分層摘要很有用。

SUBTOTAL() 函數的進階用法

使用 SUBTOTAL() 建立動態下拉式摘要

您可以將 SUBTOTAL()IF() 函數結合使用來建立互動式摘要。為此,您需要先設定一個下拉式清單(例如在儲存格 D1 中),其中包含 "Sum""Average""Count" 等選項。

然後,您需要編寫一個複雜的巢狀 IF 公式來更改計算:

=IF(D1="Sum",SUBTOTAL(109,A2:A10),
  IF(D1="Average",SUBTOTAL(101,A2:A10),
  IF(D1="Count",SUBTOTAL(103,A2:A10),
  IF(D1="Max",SUBTOTAL(104,A2:A10),"Select Option"))))

AI 替代方案: 使用 Excelmatic,您可以完全跳過公式。您只需為每個計算提出一個新問題:

  • 「可見列的銷售總和是多少?」
  • 「可見列的平均銷售價格是多少?」
  • 「計算可見產品的數量。」

這種對話式方法要直觀得多,且無需任何設定。

Excel 表格和大綱中的 SUBTOTAL()

Excel 表格在「總計列」功能中自動使用 SUBTOTAL()。當您將資料轉換為表格(Ctrl+T)並啟用總計列時,Excel 預設會插入 SUBTOTAL(109, …),當您篩選時它會動態更新。大綱功能(資料 > 小計)也依賴 SUBTOTAL() 來建立分層摘要。這些是利用該函數功能的強大內建功能。

SUBTOTAL() 的常見陷阱和限制

了解 SUBTOTAL() 的限制有助於您避免錯誤,並突顯出現代工具在哪些方面提供更好的體驗。

  • 使用無效函數編號導致 #VALUE! 錯誤: 使用 1-11 或 101-111 範圍之外的函數編號會傳回 #VALUE! 錯誤。這是一個常見的拼寫錯誤,可能會破壞您的報告。
  • 隱藏欄與隱藏列的行為差異: SUBTOTAL() 總是包含隱藏欄中的資料。如果您期望它像處理列一樣處理,這可能會導致意外結果。
  • 不支援 3D 參照: SUBTOTAL() 無法參照跨多個工作表的範圍(Sheet1:Sheet3!A1:A10)。這對於合併報告來說是一個主要限制。然而,Excelmatic 可以同時分析來自多個上傳檔案或工作表的資料,使跨工作表分析變得簡單直接。
  • 錯誤值仍包含在計算中: SUBTOTAL() 不會忽略包含 #N/A 或 #DIV/0! 等錯誤的儲存格,這可能會使您的整個結果無效。您必須先清理資料,或者使用更複雜的 AGGREGATE() 函數。
  • 垂直資料方向效果最佳: 該函數是為標準的基於欄的資料設計的,對於水平佈局可能會有不可預測的行為。

Subtotal() vs. AGGREGATE() vs. AI 代理

多年來,AGGREGATE() 函數一直是解決 SUBTOTAL() 限制的答案。AGGREGATE() 提供更多函數(總共 19 個),並且關鍵是,可以設定為忽略錯誤值。

  • SUBTOTAL():適用於對乾淨、篩選過的資料進行基本的動態計算。
  • AGGREGATE():更適合包含錯誤的資料集,或者當您需要更進階的統計函數(如 MEDIAN 或 PERCENTILE)時。
  • AI 代理(如 Excelmatic):最簡單且最強大的選項。它們處理篩選資料,通常可以自動忽略錯誤,跨多個工作表工作,並且不需要公式語法——只需簡單的英文問題。

使用 SUBTOTAL() 時的專業技巧

如果您選擇公式路徑,這些技巧將幫助您成功:

始終先排序

使用 Excel 內建的「資料 > 小計」功能時,請先按分組欄對資料進行排序,以確保分組中斷清晰。

在欄的第一列使用標籤

描述性標題使您的報告更易於解釋,並有助於 Excel 的自動化工具正確工作。

注意摘要放置位置(上方或下方)

Excel 的小計工具可以將摘要放在每個組的上方或下方。選擇最適合您報告受眾的格式。

隱藏 vs. 篩選列以實現精確控制

了解篩選(臨時性)和手動隱藏(半永久性)之間的區別,以獲得您期望的結果,並據此選擇您的函數編號(例如 109)。

結論

學習使用 SUBTOTAL() 是一項寶貴的 Excel 技能,使您能夠建立有彈性、動態的報告。它代表了從像 SUM() 這樣的靜態函數向前邁出的重要一步。

然而,資料分析的格局正在演變。對於需要快速、準確答案,但又不想陷入語法、函數代碼和錯誤處理泥潭的專業人士來說,像 Excelmatic 這樣的 AI 代理提供了一個引人注目的替代方案。透過將簡單的語言問題轉化為強大的資料分析,這些工具使從資料中獲取洞察的能力大眾化,讓您可以專注於結果,而不是公式。能夠提問「僅可見列的總計是多少?」並立即獲得正確答案,這對於效率來說是一個改變遊戲規則的能力。

無論您選擇掌握 SUBTOTAL() 的複雜性,還是擁抱 AI 的簡單性,執行動態計算的能力都是 Excel 中有效資料分析的基石。

👉 跳過公式,立即獲得動態洞察。免費試用 Excelmatic


為什麼我應該在 SUBTOTAL() 中使用函數編號 109 而不是 9?

函數編號 9 在計算中包含手動隱藏的列,而 109 則排除它們。當您希望同時忽略篩選掉和手動隱藏的列時,請選擇 109。

Excel 中 SUBTOTAL() 和 SUM() 有什麼區別?

SUBTOTAL() 會自動從計算中排除篩選掉的列,而 SUM() 則包含所有儲存格,無論是否篩選。SUBTOTAL() 還會忽略其他小計公式以防止重複計算。

我應該何時使用像 SUBTOTAL() 這樣的公式,何時使用 AI 工具?

當您需要建立永久性、結構化的報告,且計算邏輯必須嵌入儲存格時,請使用 SUBTOTAL()。當您需要進行快速、臨時的分析、探索資料,或者希望避免複雜公式並獲得即時答案時,請使用 AI 工具。

SUBTOTAL() 可以處理跨多個工作表的資料嗎?

不行,SUBTOTAL() 僅適用於同一工作表內的範圍。對於多工作表分析,您需要使用變通方法或可以處理多個檔案/工作表的 AI 工具。

我可以在一個 SUBTOTAL() 公式中包含多少個範圍?

您可以在一個 SUBTOTAL() 公式中指定最多 254 個不同的範圍。每個範圍都作為函數編號之後的單獨參數添加。

我應該何時選擇 AGGREGATE() 而不是 SUBTOTAL()?

當您的資料包含需要排除的錯誤值,或者當您需要超出 SUBTOTAL() 提供的 11 種基本運算之外的統計函數時,請使用 AGGREGATE()

AI賦能數據,決策勝券在握!

無需寫代碼與函數,簡單對話讓匡優Excel自動處理數據、生成圖表。立即免費體驗,感受AI如何顛覆你的Excel工作流 →

立即免費體驗

推薦文章

Excel 除法實用指南:公式與 AI 對比
Excel

Excel 除法實用指南:公式與 AI 對比

在 Excel 中遇到除法難題?本指南從基礎公式 (/) 到進階函數 (QUOTIENT、MOD) 完整解析。更可探索 AI 驅動的即時解方,無需背誦公式,讓運算更快速聰明。

Ruby
在 Excel 中更聰明的減法方式(公式 vs. AI)
Excel 技巧

在 Excel 中更聰明的減法方式(公式 vs. AI)

掌握 Excel 減法運算,從基礎公式到進階函數。本指南比較傳統方法與現代 AI 解決方案,示範如何更有效率地減算儲存格、欄位、百分比與日期。告別公式困擾,立即獲得解答。

Ruby
超越 MATCH - 在 Excel 中尋找資料位置的更簡便方法
Excel 技巧

超越 MATCH - 在 Excel 中尋找資料位置的更簡便方法

掌握強大的 Excel MATCH 函數進行精確資料查詢,從基礎定位到進階模糊與萬用字元搜尋。我們還將比較這種傳統方法與新型 AI 驅動方案,後者能用自然語言提供解答,無需使用公式。

Ruby
Excel 多重條件 IFS 函數使用指南
Excel 技巧

Excel 多重條件 IFS 函數使用指南

厭倦了繁複的巢狀 IF 公式?本指南將解析強大的 IFS 函數,助您輕鬆處理多重條件。我們還將對比傳統方法與現代 AI 驅動方案,示範如何不寫半行公式,就能在數秒內解決複雜邏輯問題。

Ruby
在 Excel 中進行矩陣乘法的兩種簡易方法
數據分析

在 Excel 中進行矩陣乘法的兩種簡易方法

在 Excel 中進行矩陣乘法遇到困難?本指南將逐步解析強大的 MMULT() 函數。我們還會介紹一種革新性的 AI 方法,讓您能用簡單英文執行複雜運算,使分析更快速且零錯誤。

Ruby
Excel 靈敏度分析實用指南:從手動到智能演進
Excel 技巧

Excel 靈敏度分析實用指南:從手動到智能演進

本指南深入探討 Excel 中的敏感度分析,從基礎資料表設定到進階規劃求解應用。我們將比較傳統手動方法與現代 AI 解決方案,展示如何更快速、更智慧地評估模型中變數的影響。

Ruby