彙總是一種將資料摺疊、摘要或分組的方式。 當您從來自表格或其他資料來源的原始資料開始時,資料通常是平面的,這意味著有很多細節,但尚未以任何方式組織或分組。 缺乏摘要或結構可能會使發現數據中的模式變得困難。 資料模型的一個重要部分是定義彙總,以簡化、抽象化或摘要回答特定業務問題的模式。
最常見的彙總,例如使用 AVERAGE、COUNT、DISTINCTCOUNT、MAX、MIN 或 SUM 的彙總,都可以使用 AutoSum 在量值中自動建立。 其他類型的匯總,例如 AVERAGEX、 COUNTX、 COUNTROWS 或 SUMX 會傳回表格,並需要使用 資料分析運算式 (DAX) 建立公式。
瞭解 Power Pivot 中的彙總
選擇要彙總的群組
彙總資料時,您可以依產品、價格、地區或日期等屬性將資料分組,然後定義適用於群組中所有資料的公式。 例如,當您建立一年的總計時,您正在建立彙總。 如果您接著建立今年與前一年的比率,並將其呈現為百分比,則是一種不同類型的匯總。
如何將資料分組的決定是由商務問題所驅動。 例如,彙總可以回答下列問題:
計數 一個月內有多少筆交易?
平均值 按銷售人員劃分的本月平均銷售額為何?
最小值和最大值 就銷售單位而言,哪些銷售區是前五名?
若要建立回答這些問題的計算,您必須擁有包含要計數或加總之數字的詳細資料,且該數值資料必須以某種方式與您將用來組織結果的群組相關聯。
如果資料尚未包含可用於分組的值,例如產品類別或商店所在地理區域的名稱,您可能會想要新增類別將群組引入資料。 當您在 Excel 中建立群組時,您必須從工作表的欄中手動輸入或選取您要使用的群組。 不過,在關聯式系統中,階層 (例如產品的類別) 通常會儲存在與事實或值資料表不同的資料表中。 通常類別資料表會透過某種索引鍵連結到事實資料。 例如,假設您發現您的資料包含產品 ID,但不包含產品名稱或其類別。 若要將類別新增至一般 Excel 工作表,您必須在包含類別名稱的資料行中進行複製。 利用 Power Pivot,您可以將產品類別資料表匯入至您的資料模型、建立含有數字資料的資料表與產品類別清單之間的關聯,然後使用類別來將資料組成群組。 如需詳細資訊,請參閱 建立資料表之間的關聯。
選擇要彙總的函數
識別並新增要使用的分組之後,您必須決定要用於彙總的數學函數。 彙總一詞通常用作彙總中使用的數學或統計運算的同義字,例如總和、平均值、最小值或計數。 不過,除了 Power Pivot 和 Excel 中的標準匯總之外,Power Pivot 還可讓您建立自訂匯總公式。
例如,假設使用與上述範例中使用的相同值和分組集,您可以建立可回答下列問題的自訂彙總:
篩選計數 一個月內有多少筆交易,不包括月底的維護時段?
使用一段時間轉換平均值的比率與去年同期相比,銷售額增長或下降的百分比是多少?
分組最小值和最大值 哪些銷售區域在每個產品類別或每個促銷活動中名列前茅?
在公式和樞紐分析表中新增匯總
當您對資料應該如何分組才有意義,以及您想要處理的值大致有了解後,就可以決定是要建置樞紐分析表,或是在資料表內建立計算。 Power Pivot 擴充並改善 Excel 建立彙總的原生能力,例如總和、計數或平均值。 您可以在 Power Pivot 視窗或 Excel 樞紐分析表區域中建立 Power Pivot 中的自訂彙總。
- 在 計算結果欄中,您可以建立考慮目前資料列內容的彙總,以從另一個資料表擷取相關資料列,然後加總、計數或平均相關資料列中的這些值。
- 在 量值中,您可以建立動態彙總,其中既使用公式中定義的篩選,又使用樞紐分析表的設計以及交叉分析篩選器、欄標題和列標題的選取所強制施加的篩選。 使用標準彙總的量值可以在 Power Pivot 中使用自動加總或建立公式來建立。 您也可以在 Excel 的樞紐分析表中使用標準彙總建立隱含量值。
新增群組至樞紐分析表
當您設計樞紐分析表時,可以將代表群組、類別或階層的欄位拖曳到樞紐分析表的欄和列區段來將資料組成群組。 然後,將包含數值的欄位拖曳到值區域,以便計算、平均或加總它們。
如果您在樞紐分析表中新增類別,但類別資料與事實資料無關,可能會收到錯誤或不尋常的結果。 通常 Power Pivot 會嘗試自動偵測並建議關聯,以修正問題。 如需詳細資訊,請參閱處理 樞紐分析表中的關聯。
您也可以將欄位拖曳到 [交叉分析篩選器] 中,以選取特定資料群組以檢視。 交叉分析篩選器讓您以互動方式分組、排序及篩選樞紐分析表中的結果。
使用公式中的分組
您也可以使用群組和類別來匯總儲存在資料表中的資料,方法是建立資料表之間的關聯,然後建立利用這些關聯來查詢相關值的公式。
換句話說,如果您想要建立依類別分組值的公式,您首先需要使用關聯來連接包含詳細資料的資料表和包含類別的資料表,然後建置公式。
如需如何建立使用查閱的公式的詳細資訊,請參閱 Power Pivot 公式中的查閱。
在彙總中使用篩選條件
Power Pivot 的一項新功能是能夠將篩選套用至資料欄和表格,不僅在使用者介面中、在樞紐分析表或圖表中,而且在您用來計算匯總的公式中也是如此。 篩選可以在公式中使用,既可在計算欄中,也可在公式中使用。
例如,在新的 DAX 彙總函數中,您可以將整個資料表指定為引數,而非指定要加總或計數的值。 如果您未對該資料表套用任何篩選,彙總函數就會針對該資料表中指定資料行中的所有值使用。 不過,在 DAX 中,您可以在資料表上建立動態或靜態篩選,讓彙總根據篩選條件和目前內容,針對不同的資料子集進行作業。
結合公式中的條件和篩選,您可以建立依據公式中提供的值而變更的彙總,或根據樞紐分析表中列、標題和欄標題的選取而變更的彙總。
如需詳細資訊,請參閱 篩選公式中的資料。
Excel 彙總函數和 DAX 彙總函數的比較
下表列出 Excel 提供的一些標準彙總函數,並提供這些函數在 Power Pivot 中實作的連結。 這些函數的 DAX 版本行為與 Excel 版本大致相同,只是在語法和處理特定資料類型方面有一些細微差異。
Standard 彙總函數
| 功能 | 用途 |
|---|---|
| AVERAGE | 傳回資料行中所有數字的平均 (算術平均)。 |
| AVERAGEA | 傳回欄中所有值的平均值 (算術平均值) 。 處理文字和非數值。 |
| COUNT | 計算欄中數值的數目。 |
| COUNTA | 計算欄中非空白值的個數。 |
| MAX | 傳回欄中的最大數值。 |
| MAXX | 傳回在表格上評估的一組運算式中的最大值。 |
| MIN | 傳回欄中的最小數值。 |
| MINX | 傳回透過表格評估的一組運算式中的最小值。 |
| SUM | 將資料行中的所有數字相加。 |
DAX 彙總函數
DAX 包含彙總函數,可讓您指定要執行彙總的資料表。 因此,這些函數可讓您建立動態定義要彙總之資料的運算式,而不只是將欄中的值相加或平均。
下表列出可在 DAX 中使用的彙總函數。
| 功能 | 用途 |
|---|---|
| AVERAGEX | 計算在表格上評估的一組運算式的平均值。 |
| COUNTAX | 計算在表格上評估的一組運算式。 |
| COUNTBLANK | 計算欄中空白值的個數。 |
| COUNTX | 計算表格中的列總數。 |
| COUNTROWS | 計算從巢狀表格函數傳回的列數,例如篩選函數。 |
| SUMX | 傳回在表格上評估的一組運算式總和。 |
DAX 與 Excel 彙總函數之間的差異
雖然這些函數與 Excel 對應函數具有相同的名稱,但它們利用 Power Pivot 的記憶體內部分析引擎,並已重寫以使用資料表和資料行。 您無法在 Excel 活頁簿中使用 DAX 公式,反之亦然。 它們只能在 Power Pivot 視窗和以 Power Pivot 資料為基礎的樞紐分析表中使用。 此外,雖然函數具有相同的名稱,但行為可能會稍有不同。 如需詳細資訊,請參閱個別函數參考主題。
在彙總中評估欄的方式也與 Excel 處理匯總的方式不同。 舉個例子可能有助於說明。
假設您想要取得 Sales 資料表中 [金額] 欄值的總和,因此您建立了下列公式:
=SUM('Sales'[Amount])
在最簡單的情況下,函數會從單一未篩選的資料行取得值,而結果與 Excel 中相同,而 Excel 一律只是將資料行中的值加總 Amount。 不過,在 Power Pivot 中,公式會解譯為「取得 Sales 資料表中每一列的 [金額] 值,然後將這些個別值相加。 Power Pivot 會評估執行彙總的每一列,並為每一列計算單一純量值,然後對這些值執行匯總。 因此,如果篩選條件已套用至資料表,或是根據其他可能要篩選的彙總來計算值,公式的結果可能會不同。 如需詳細資訊,請參閱 DAX 公式中的內容。
DAX 時間智慧函數
除了上一節所述的資料表彙總函數之外,DAX 還有可處理您指定之日期和時間的彙總函數,以提供內建的時間智慧。 這些函數使用日期範圍來取得相關值並彙總值。 您也可以比較不同日期範圍的值。
下表列出可用於彙總的時間智慧函數。
| 功能 | 用途 |
|---|---|
|
CLOSINGBALANCEMONTH CLOSINGBALANCEQUARTER CLOSINGBALANCEYEAR |
在指定期間的行事曆結束計算值。 |
|
OPENINGBALANCEMONTH OPENINGBALANCEQUARTER OPENINGBALANCEYEAR |
在指定期間之前的行事曆結束時計算值。 |
|
TOTALMTD TOTALYTD TOTALQTD |
在指定日期欄中,計算從期間的第一天開始到最晚日期結束的區間內的值。 |
[ 時間智慧函數 ] 區段中的其他函數 (時間智慧函數) 是可以用來擷取日期或自訂日期範圍以用於彙總的函數。 例如,您可以使用 DATESINPERIOD 函數傳回日期範圍,然後使用該組日期作為另一個函數的引數,只計算這些日期的自訂彙總。