聚合是一種整合、摘要或分組資料的方法。 當你從表格或其他資料來源的原始資料開始時,資料通常是扁平的,也就是有很多細節,但沒有任何組織或分組。 缺乏摘要或結構,可能使得發現數據中的模式變得困難。 資料建模的一個重要部分是定義彙總,以簡化、抽象或總結特定商業問題的模式。
大多數常見的聚合,如使用 AVERAGE、COUNT、DISTINCTCOUNT、MAX、MIN 或 SUM,皆可透過 AutoSum 自動建立在一個度量中。 其他類型的聚合,如 AVERAGEX、 COUNTX、 COUNTROWS 或 SUMX ,會回傳一個表格,並需要使用 DAX) (資料分析式 建立的公式。
理解 Power Pivot 中的聚合
選擇聚合群組
當你彙整資料時,你會依照產品、價格、地區或日期等屬性來分組,然後定義一個適用於該群組所有資料的公式。 例如,當你建立一年的總計時,你是在建立一個彙總。 如果你再建立今年與前一年的比率,並以百分比呈現,則是另一種形式的彙總。
如何分組資料的決定是由商業問題所驅動。 例如,聚合可以回答以下問題:
伯爵 一個月內有多少筆交易?
平均分 本月銷售人員的平均銷售額是多少?
最小值與最大值 以銷售量計,哪些銷售區域名列前五?
要做出能回答這些問題的計算方法,你必須擁有詳細的資料,包含要計數或加總的數字,且這些數字資料必須與你用來組織結果的群組有某種關聯。
如果資料中還沒有包含可用於分組的數值,例如產品類別或門市所在地理區域名稱,你可能想透過新增分類來引入群組。 在 Excel 中建立群組時,你必須手動從工作表的欄位中輸入或選擇你想使用的群組。 然而,在關聯系統中,階層結構如產品的類別通常會儲存在與事實或價值表不同的表格中。 通常類別表會透過某種鍵與事實資料連結。 舉例來說,假設你的資料包含產品識別碼,但沒有產品名稱或分類。 要將分類加入平面 Excel 工作表,必須在包含類別名稱的欄位複製。 使用 Power Pivot,你可以將產品類別表匯入資料模型,建立與數字資料表與產品類別清單之間的關聯,然後利用分類來分組資料。 欲了解更多資訊,請參閱 「建立資料表間的關係」。
選擇聚合函數
在你辨識並加入要使用的分組後,你必須決定要用哪些數學函數來彙總。 彙總一詞常被用作彙總中使用的數學或統計運算的同義詞,例如和、平均值、最小值或計數。 然而,Power Pivot 讓你能建立自訂的聚合公式,除了 Power Pivot 和 Excel 中常見的標準聚合外。
例如,給定與前述範例相同的數值與分組,你可以建立自訂的聚合,以回答以下問題:
過濾計數 一個月內有多少筆交易,不包括月底的維護時段?
使用時間平均值的比率 與去年同期相比,銷售的百分比成長或下降是多少?
最小值與最大值的群組 哪些銷售區在每個產品類別或每次促銷中被評為最高?
在公式與樞紐分析表中加入聚合
當你對資料應該如何分組以有意義,以及想要處理的值有了大致的想法後,你就可以決定是建立樞紐分析表,還是在表格中建立計算。 Power Pivot 擴展並提升了 Excel 原生的功能,使其能產生如總和、計數或平均值等彙總。 你可以在 Power Pivot 視窗內或 Excel 樞紐分析表區域內建立自訂聚合。
- 在 計算欄位中,你可以建立結合當前列上下文的聚合,從其他資料表取得相關資料列,然後將相關列的數值加總、計算或平均。
- 在 衡量過程中,你可以建立動態聚合,結合公式中定義的篩選條件,以及樞紐分析表設計與切片器、欄位標題和列標題選擇所施加的篩選條件。 使用標準彙總的衡量工具可以在 Power Pivot 中透過自動加和或建立公式來建立。 你也可以在 Excel 的樞紐分析表中,使用標準彙整建立隱含的衡量指標。
在樞紐分析表中添加分組
設計樞紐分析表時,你會將代表群組、類別或階層的欄位拖曳到樞紐分析表的欄位和列區塊,以便將資料分組。 接著你將包含數值的欄位拖入該值區域,以便進行計數、平均或加總。
如果你在樞紐分析表中新增分類,但分類資料與事實資料無關,可能會出現錯誤或奇怪的結果。 通常 Power Pivot 會嘗試修正這個問題,透過自動偵測並建議關聯。 欲了解更多資訊,請參閱 「在樞紐分析表中處理關係」。
你也可以把欄位拖到切片軟體裡,選取特定資料群組來查看。 切片軟體讓你能互動地將結果分組、排序和篩選到樞紐分析表中。
公式中分組的應用
你也可以利用分組和分類,透過建立表格間的關聯來彙整儲存在表格中的資料,然後建立公式利用這些關聯來查找相關值。
換句話說,如果你想建立一個以類別分組數值的公式,你會先用關係連結包含詳細資料的資料表和包含類別的資料表,然後建立公式。
欲了解更多如何建立使用查找的公式,請參閱 Power Pivot 公式中的查詢。
在聚合中使用過濾器
Power Pivot 的一項新功能是能對資料欄位和表格套用篩選器,不僅在使用者介面、樞紐分析表或圖表中,甚至在計算聚合的公式中也能使用。 濾波器可用於計算欄位及 s 的公式中。
例如,在新的 DAX 聚合函數中,你可以指定整個表格作為參數,而不是指定要加總或計數的值。 如果你沒有對該表格套用任何篩選器,聚合函數就會針對表格指定欄位中的所有值進行處理。 然而,在 DAX 中,你可以在資料表上建立動態或靜態過濾器,讓聚合根據篩選條件和當前上下文,針對不同的資料子集進行。
透過結合公式中的條件與過濾器,你可以建立根據公式中提供的值改變的彙總,或根據樞紐分析表中列標題與欄標題的選擇而改變的彙總。
欲了解更多資訊,請參閱 「公式中的篩選資料」。
Excel 聚合函數與 DAX 聚合函數的比較
下表列出 Excel 提供的部分標準聚合函式,並提供 Power Pivot 中這些函式實作的連結。 DAX 版本的函式與 Excel 版本行為大致相同,僅在語法與某些資料型態處理上有些微差異。
Standard 聚合功能
| 功能 | 用途 |
|---|---|
| AVERAGE | 傳回資料行中所有數字的平均 (算術平均)。 |
| AVERAGEA | 回傳欄位中所有值的平均 (算術平均) 。 處理文字及非數字值。 |
| COUNT | 計算欄位中數值的數量。 |
| COUNTA | 計算欄位中非空值的數量。 |
| MAX | 回傳欄位中最大的數值。 |
| MAXX | 回傳從一組運算式中對資料表評估出的最大值。 |
| MIN | 回傳欄位中最小的數值。 |
| 小妖精 | 從一組運算式中回傳最小值。 |
| SUM | 將所有數字加成一欄。 |
DAX 聚合功能
DAX 包含聚合功能,讓你指定一個要執行聚合的表格。 因此,這些函式不只是將欄位中的數值加總或平均,而是讓你建立一個表達式,動態定義資料以彙總。
下表列出 DAX 中可用的聚合函數。
| 功能 | 用途 |
|---|---|
| 平均數 | 將一組在表格上評估的表達式平均。 |
| COUNTAX | 計算一組在表格上被評估的表達式。 |
| COUNTBLANK | 計算欄位中空白值的數量。 |
| COUNTX | 計算表格中總列數。 |
| 伯爵隊 | 計算巢狀資料表函式(如過濾函數)回傳的列數。 |
| SUMX | 回傳一組在表格上評估的表達式總和。 |
DAX 與 Excel 聚合函數的差異
雖然這些函式名稱與 Excel 相同,但它們利用 Power Pivot 的記憶體內分析引擎,並已重寫以支援資料表與欄位。 你不能在 Excel 工作簿中使用 DAX 公式,反之亦然。 它們只能用於 Power Pivot 視窗以及基於 Power Pivot 資料的樞紐分析表中。 此外,雖然這些函式名稱相同,但行為可能略有不同。 欲了解更多資訊,請參閱個別功能參考主題。
在聚合中評估欄位的方式也與 Excel 處理聚合的方式不同。 舉個例子可以幫助說明。
假設你想取得表格 Sales 中 Amount 欄位中所有值的總和,因此你建立以下公式:
=SUM('Sales'[Amount])
最簡單的情況下,函式從單一未過濾欄位取得數值,結果與 Excel 相同,Excel 總是將欄位 Amount 中的數值加總。 然而,在 Power Pivot 中,公式的解讀是「取得銷售表每一列的金額值,然後將這些個別值相加。 Power Pivot 會評估每個進行聚合的列,並為每列計算一個純量值,然後對這些值進行聚合。 因此,若對表格施加過濾器,或是根據其他可能被過濾的彙總計算,公式結果可能會不同。 欲了解更多資訊,請參閱 DAX 公式中的情境。
DAX 時間智慧功能
除了前一節描述的表格聚合函數外,DAX 還有整合功能,能依照你指定的日期和時間運作,提供內建的時間智慧。 這些函式利用日期範圍取得相關值並彙整這些值。 你也可以比較不同日期範圍的價值。
下表列出可用於聚合的時間情報函數。
| 功能 | 用途 |
|---|---|
|
結束平衡月 結束平衡季度 結束平衡年 |
計算給定期間曆法末的值。 |
|
開頭餘額月 開季餘額 開業餘額年度 |
計算在該期間之前的曆法末值。 |
|
全體體制 全面發展 TOTALQTD |
計算從該期間第一天開始,到指定日期欄中最晚結束日期的區間值。 |
時間智慧功能部分 (時間智慧功能) 中的其他函式,是可用來檢索日期或自訂日期範圍以用於聚合的函式。 例如,你可以使用 DATESINPERIOD 函式回傳一組日期,並用這組日期作為另一個函數的參數,計算出專門針對這些日期的自訂彙總。