在Excel中,經常要對數據進行分類統計,如果用普通的函數、公式去完成不僅費時費力,而且部分功能根本無法實現,今天,小編給大家介紹兩個分類統計的萬能函數:Subtotal和Aggregate。
一、Subtotal函數。
(一)功能及語法結構。
功能:返回一個數據列表或資料庫的分類匯總。
語法結構:=Subtotal(功能代碼,數據區域)。
其中功能代碼分為2大類,如下圖:
其中1-11包含隱藏值,101-111不包含隱藏值,只對可見單元格有效。
注意事項:
1、【匯總方式】必須為數值類型或可以轉換為數值的類型,否則返回錯誤值「#VALUE!」。
2、Subtotal函數對隱藏的列區域無效。
3、數據區域只支持引用,不支持三維引用,否則返回錯誤值「#VALUE!」。
(二)應用技巧。
1、對隱藏後的數據求和,明確代碼作用。
方法:在目標單元格中輸入:=SUBTOTAL(9,D3:D9)和=SUBTOTAL(109,D3:D9)。
解讀:1、未隱藏行數據之前,Sum、代碼為9和109時的結果都相同。
2、隱藏行數據之後,Sum、代碼為9的結果不變,而代碼為109的結果發生了變化,為當前「可見」單元格區域的和值。
2、對篩選後的數據求平均值,明確代碼作用。
方法:在目標單元格中輸入:=SUBTOTAL(1,D3:D9)和=SUBTOTAL(101,D3:D9)。
解讀:1、未篩選數據之前,Average、代碼為1和101時的結果都相同。
2、篩選行數據之後,Average的結果不變,代碼為1和101的結果發生了變化,為當前「可見」單元格區域的平均值。
3、Subtotal經典應用技巧——保持序號(No)的連續性。
目的解析:保持序號(No)的連續性就是在隱藏、刪除或篩選數據行之後,序號自動以自然數的方式填充。
思路:對隱藏、刪除、篩選後的序號以自然數的方式填充,其實就是對可見單元格計數,所以用代碼103即可。
方法:在目標單元格中輸入公式:=SUBTOTAL(103,B$2:B2)。
解讀:代碼「103」表示對可見非空單元格計數,而且參數為當前單元格的「右上角」開始統計。
4、Subtotal函數小結。
Subtotal函數的分類功能主要體現在「功能代碼」上,而代碼1-11對隱藏的數據無效,101-111對「可見」的數據有效。具體請參閱下圖:
但在實際的應用中,代碼101-111的應用價值更高,更為實用!
二、Aggregate。
(一)功能及語法結構。
功能:返回一個數據列表或資料庫的分類合計。
語法結構:=Aggregate(功能代碼,忽略代碼,數據區域)
其中功能代碼如下圖:
忽略代碼如下圖:
(二)應用技巧。
1、對隱藏後的數據求和。
方法:在目標單元格中輸入公式:=AGGREGATE(9,1,D3:D9)、=AGGREGATE(9,3,D3:D9)、=AGGREGATE(9,5,D3:D9)、=AGGREGATE(9,7,D3:D9)。
解讀:功能代碼9對應的函數為Sum,即求和。忽略代碼1、3、5、7的功能中均有「忽略隱藏值」,也就是對「可見」單元格有效。所以在隱藏行數據後,其結果發生了變化。
2、忽略隱藏及錯誤值匯總。
方法:在目標單元格中輸入公式:=AGGREGATE(9,3,D3:D9)、=AGGREGATE(9,7,D3:D9)。
解讀:1、在用Sum和Subtotal求和時,因為有錯誤值#N/A ,所以無法返回正確的結果。
2、忽略代碼3、7不僅忽略錯誤值,還可以忽略隱藏的數據行。可以對當前的指定區域D3:D9進行求和運算。
3、篩選數據求和。
方法:在目標單元格中輸入公式:=AGGREGATE(9,1,D3:D9)、=AGGREGATE(9,3,D3:D9)、=AGGREGATE(9,5,D3:D9)、=AGGREGATE(9,7,D3:D9)。
4、忽略錯誤值篩選求和。
方法:在目標單元格中輸入公式:=AGGREGATE(9,3,D3:D9)、=AGGREGATE(9,7,D3:D9)。