公式的關聯性及查閱
PowerPivot for Excel 中最強大的一項功能是能夠建立資料表之間的關聯性,然後使用相關的資料表查閱或篩選相關的資料。您可以使用 PowerPivot for Excel 隨附的公式語言 Data Analysis Expressions (DAX),從資料表擷取相關的值。DAX 使用關聯式模型,因此可以輕易並準確地擷取另一個資料表或資料行中相關或對應的值。
您可以建立將查閱當做計算結果欄一部分使用的公式,或用於樞紐分析表或樞紐分析圖之量值一部分使用的公式。如需詳細資訊,請參閱下列主題:
本節描述針對查閱所提供的 DAX 函數,以及如何使用這些函數的一些範例。
[!附註]
根據您要使用的查閱作業類型或查閱公式而定,您需要先建立資料表之間的關聯性。如需有關建立關聯性的詳細資訊,請參閱<資料表之間的關聯性>。
了解查閱函數
當目前的資料表只有特定種類的識別碼,但是您需要的資料 (例如產品價格、名稱或其他詳細值) 儲存在相關資料表時,能夠從其他資料表查閱相符或相關的資料特別實用。當與目前資料列或目前值相關的其他資料表中有多個資料列時,此函數也相當實用。例如,您可以輕易地擷取繫結到特定區域、商店或業務員的所有銷售額。
與 Excel 的查閱函數 (例如,以陣列為基礎的 VLOOKUP,或者會取得多個符合值之第一個值的 LOOKUP) 相較,DAX 會依據索引鍵所聯結之資料表間的現有關聯性來取得完全符合的單一相關值。DAX 也可以擷取與目前記錄相關之記錄的資料表。
[!附註]
如果您熟悉關聯式資料庫,可以將 PowerPivot 中的查閱視為類似 Transact-SQL 中的巢狀子選擇陳述式。
如需有關 PowerPivot 中所使用之關聯式模型的詳細資訊,請參閱<關聯性概觀>。
擷取單一的相關值
RELATED 函數會從另一個資料表傳回單一的值,該值相關於目前資料表中的目前值。當您指定包含所需資料的資料行之後,函數就會遵循資料表之間的現有關聯性,從相關資料表中指定的資料行提取值。在某些情況下,函數必須遵循關聯性的鏈結以便擷取資料。
例如,假設您在 Excel 中有一份今日出貨的清單。不過,該清單只包含員工 ID 編號、訂單 ID 編號和承運者 ID 編號,這讓報表難以讀取。若要取得所需的額外資訊,您可以將該清單轉換成 PowerPivot 連結資料表,然後建立 Employee 和 Reseller 資料表之間的關聯性,將 EmployeeID 與 EmployeeKey 欄位配對,並將 ResellerID 與 ResellerKey 欄位配對。
若要在連結資料表中顯示查閱資訊,請使用下列公式加入兩個新的導出資料行:
= RELATED('Employees'[EmployeeName])
= RELATED('Resellers'[CompanyName])
在查閱之前 |
在查閱之後 |
Order IDEmployeeIDResellerID
100314230445
10031515445
10031676108
EmployeeIDEmployeeReseller
230Kuppa VamsiModular Cycle Systems
15Pilar AckemanModular Cycle Systems
76Kim RallsAssociated Bikes
|
Order IDEmployeeIDResellerIDEmployeeReseller
100314230445Kuppa VamsiModular Cycle Systems
10031515445Pilar AckemanModular Cycle Systems
10031676108Kim RallsAssociated Bikes
|
此函數使用連結資料表與 Employees 和 Resellers 資料表之間的關聯性,取得報表中每個資料列的正確名稱。您也可以使用相關的值來進行計算。如需詳細資訊和範例,請參閱<RELATED 函數 (DAX)>。
擷取相關值的清單
RELATEDTABLE 函數遵循現有的關聯性,然後從指定的資料表傳回包含所有相符資料列的資料表。例如,假設您想要查出每個轉售商在今年所下的訂單數目。您可以在 Resellers 資料表中建立包含下列公式的新導出資料行,由公式查閱 ResellerSales_USD 資料表中每個轉售商的記錄,並計算每個轉售商所下的個別訂單數目。這些資料表是 DAX 範例活頁簿的一部分。如需範例資料的詳細資訊,請參閱<取得 PowerPivot 的範例資料>。
=COUNTROWS(RELATEDTABLE(ResellerSales_USD))
在此公式中,RELATEDTABLE 函數會先針對目前資料表中的每個轉售商,取得 ResellerKey 的值 (您不需要在公式中的任何位置指定 ID 資料行,因為 PowerPivot 會使用資料表之間的現有關聯性)。接著 RELATEDTABLE 函數從 ResellerSales_USD 資料表取得與每個轉售商相關的所有資料列,並算出資料列的數目。 請注意,如果兩個資料表之間沒有關聯性 (直接或間接),將會取得 ResellerSales_USD 資料表中的所有資料列。
由於轉售商 Modular Cycle Systems 在範例資料庫的銷售資料表中有四筆訂單,函數會傳回 4。而轉售商 Associated Bikes 因為沒有銷售額,函數即傳回空白。
轉售商 |
此轉售商在銷售資料表中的記錄 |
Modular Cycle Systems |
Reseller IDSalesOrderNumber
445SO53494
445SO71872
445SO65233
445SO59000
|
Associated Bikes |
|
[!附註]
由於 RELATEDTABLE 函數會傳回一個資料表,而非單一值,此函數必須用於對資料表執行運算的函數中當做引數。如需詳細資訊,請參閱<RELATEDTABLE 函數 (DAX)>。