公式中的彙總
本主題將介紹彙總,並提供 PowerPivot for Excel 可能搭配使用之彙總類型的概觀。PowerPivot for Excel 包含下列工具以讓您建立彙總:
您可以根據 PowerPivot 資料,建置樞紐分析表和樞紐分析圖。Excel 樞紐分析表是將工作表中資料分組及摘要時普遍使用的工具。PowerPivot 是在 Excel 中與樞紐分析表整合的功能,並提供許多增強功能。
您可以使用 DAX 公式語言設計自訂彙總。使用 DAX 便能夠在樞紐分析表中建立「導出資料行」(Calculated Column),以及在樞紐分析表和樞紐分析圖中建立「量值」(Measure)。
本主題的最後一節提供如何建立彙總之詳細資訊的連結。
彙總簡介
「彙總」(Aggregations) 是一種摺疊、摘要或群組資料的方式。當您從資料表或其他資料來源的原始資料開始時,通常都是一般資料,也就是內容雖極為詳盡,卻未曾以任何方式整理或分組。這種欠缺摘要或結構的情況會使資料中的模式難以發現。因此,分析師的重要工作是定義簡化、抽象或摘要模式的彙總,以回答特定的商務問題。
選擇彙總的群組
彙總資料時,可依產品、價格、地區或日期等屬性進行資料分組,然後定義適用於群組中所有資料的公式。例如,建立一年的總計時,就是建立彙總。如果之後又建立這一年與前一年的比率,然後以百分比呈現,這就是不同類型的彙總。
如何群組資料的決定是受商務問題左右。例如,彙總可以回答下列問題:
計數:一個月之中有多少次交易?
平均值:本月份每個銷售人員的平均銷售量是多少?
最小值與最大值:以銷售單位數來說,哪些銷售區域是前五大區域?
若要建立回答上述問題的計算,必須有包含要計算或加總之數字的詳細資料,而且該項數值資料必須與您要用來組織結果的群組有某種關聯。
如果該資料尚未包含您要用於分組的值,像是產品類別目錄或是商店所在地理區域的名稱,您可能需要透過加入類別目錄來引進群組。在 Excel 中建立群組時,您必須手動輸入或從工作表上的資料行當中選取想要使用的群組。
然而在關聯式系統中,如產品類別目錄等階層經常是儲存於與事實或值資料表不同的資料表。類別資料表通常是以某種索引鍵連結到事實資料。例如,假設您發現資料中包含產品識別碼,卻沒有產品或其類別目錄的名稱。若要加入類別目錄到一般 Excel 工作表,您必須複製含有類別目錄名稱的一整個資料行。但如果換成 PowerPivot 活頁簿,您就可以將產品類別目錄資料表匯入活頁簿,並建立該資料表與數字資料及產品類別目錄清單之間的關聯性,然後使用類別目錄進行資料分組。如需詳細資訊,請參閱<資料表之間的關聯性>。
選擇彙總的函數
在您識別及加入要使用的群組之後,必須決定要使用哪個數學函數來進行彙總。彙總這個字常用來做為用於加總、平均、最小值或計數等彙總之數學或統計運算的同義詞。但是,除了 Excel 中包含的標準彙總以外,PowerPivot for Excel 還可讓您為彙總建立自訂公式。
例如,以上一個範例中所使用的同一組值和群組,您可以建立自訂彙總來回答下列問題:
篩選的計數:除了月底維護期間以外,一個月中有多少次交易?
使用一段時間的平均值算出比例:與去年同期銷售量相比,成長或衰退百分比是多少?
群組的最小值和最大值:以每個產品類別或每項銷售促銷來說,哪個銷售區域排行最高?
將彙總加入至公式和樞紐分析表
當您大致了解資料應該如何群組才會有意義以及所要使用的值時,您可以決定是要建立樞紐分析表,或是在資料表之中建立計算。PowerPivot for Excel 擴充並改善了 Excel 建立加總、計數或平均等彙總的原生能力。您可以在 PowerPivot 的 PowerPivot 視窗或 Excel 樞紐分析表區域中建立自訂彙總。
在導出資料行中,您可以建立將目前資料列內容列入考量的彙總,以便從另一個資料表中擷取相關的資料列,然後加總、計數或平均相關資料列中的這些值。
在量值中,您可以建立動態彙總,同時使用公式內定義的篩選器,以及樞紐分析表設計和所選交叉分析篩選器、資料行標題與資料列標題所加諸的篩選器。
如需詳細資訊,請參閱<建立計算的公式>。
將群組加入至樞紐分析表
當您設計樞紐分析表時,可以將代表群組、類別目錄或階層的欄位拖曳到樞紐分析表的資料行和資料列區段來進行資料分組。然後您可以將包含數值的欄位拖曳到值區域之中,以便進行計數、平均或加總。
如果您將類別目錄加入至樞紐分析表,但是類別目錄資料與事實資料不相關,可能就會計算出錯誤或怪異的結果。PowerPivot for Excel 通常都會自動進行偵測並建議關聯性,嘗試修正問題。如需詳細資訊,請參閱<使用樞紐分析表中的關聯性>。
您也可以將欄位拖曳到交叉分析篩選器,以選取特定資料群組進行檢視。交叉分析篩選器是 Excel 和 PowerPivot for Excel 中的新功能,可以讓您以互動方式對樞紐分析表中的結果進行群組、排序和篩選。
在公式中使用群組
您也可以透過建立資料表之間的關聯性,然後建立利用這些關聯性來查閱相關值的公式,藉此使用群組和類別來彙總儲存在資料表中的資料。
換句話說,如果您想要建立的公式是依類別目錄將值分組,就要先使用關聯性連接包含詳細資料的資料表與包含類別目錄的資料表,然後再建置公式。
如需如何建置使用查閱之公式的詳細資訊,請參閱<公式的關聯性及查閱>。
在彙總中使用篩選
PowerPivot 中有一項新功能,就是能夠將篩選套用至資料行和資料表,不但在使用者介面中及樞紐分析表或圖表中,而且在您用來計算彙總的公式中,都可以使用這項功能。篩選可以用在導出資料行和量值的公式中。
例如,在新的 DAX 彙總函式中,不是指定要進行加總或計數的值做為引數,而可以指定整個資料表做為引數。如果沒有套用任何篩選至該資料表,彙總函式會根據資料表中所指定資料行中的所有值進行計算。但是在 DAX 中,您可以在資料表上建立動態或靜態的篩選,以便讓彙總依篩選條件和目前內容而定,根據不同的資料子集進行運算。
您可以在公式中結合條件和篩選,建立依公式中所提供值變更的彙總,或者建立依樞紐分析表中資料列標題與資料行標題選擇而變更的彙總。
如需詳細資訊,請參閱<在公式中篩選資料>。
Excel 彙總函式和 DAX 彙總函式的比較
下表列出 Excel 提供的一些標準彙總函式,並提供 PowerPivot for Excel 中實作這些函式的連結。這些函式的 DAX 版本與 Excel 版本非常類似,但在某些資料類型的語法和處理上有些微的差異。
標準彙總函式
DAX 彙總函式
DAX 包含的彙總函式,可讓您指定要執行彙總所依據的資料表。因此,這些函式可讓您建立以動態方式定義所要彙總資料的運算式,而不只是將資料行中的值相加或計算平均值。
下表列出 DAX 中可用的彙總函式。
DAX 和 Excel 彙總函式之間的差異
雖然這些函式與其 Excel 對應項目具有相同的名稱,卻是使用 PowerPivot VertiPaq 引擎,而且都已重寫為可搭配資料表和資料行使用。您不能在 Excel 活頁簿中使用 DAX 公式,反之亦然。這些函式只能在 PowerPivot 視窗與以 PowerPivot 資料為基礎的樞紐分析表中使用。同時,雖然這些函數具有相同的名稱,但行為可能稍有不同。如需詳細資訊,請參閱各函式參考主題。
資料行在彙總時進行評估的方式也和 Excel 處理彙總的方式不同。舉例說明應能更有助於理解。
假設您想要加總 Sales 資料表中 Amount 資料行的值,就要建立下列公式:
=SUM('Sales'[Amount])
在最簡單的情況下,函數會從單一未篩選的資料行取得值,其結果與在 Excel 中相同,也就是一律只加總 Amount 資料行中的值。不過,在 PowerPivot 中,此公式會解譯為「取得 Sales 資料表每個資料列之 Amount 中的值,然後加總這些個別的值」。PowerPivot 將先評估要執行彙總的每個資料列,然後計算每個資料列的單一純量值,再對這些值執行彙總。因此,如果資料表已經套用篩選,或是值計算所依據的其他彙總可能經過篩選,公式的結果便不盡然相同。如需詳細資訊,請參閱<DAX 公式中的內容>。
DAX 時間智慧函數
除了上一節中說明的新資料表彙總函式以外,DAX 也有可操作您所指定之日期和時間的彙總函式,以提供內建「時間智慧」(Time Intelligence)。這些函數使用日期範圍,取得相關的值並彙總這些值。您也可以比較跨日期範圍的值。
下表列出可用於彙總的時間智慧函數。
函數 |
用途 |
在特定期間的行事曆結尾計算值。 |
|
在特定期間之前的期間行事曆結尾計算值。 |
|
針對始於期間的第一天且結束於指定之日期資料行中的最後日期,計算落在該間隔內的值。 |
您還可以使用<時間智慧函數>一節 (時間智慧函數 (DAX)) 中的其他函數,擷取日期或自訂日期範圍以便用於彙總之中。例如,您可以使用 DATESINPERIOD 函數傳回特定的日期範圍,然後將該組日期當做其他函數的引數使用,從而建立只針對這些日期執行的自訂彙總。