Power Pivot 最強大的功能之一就是能夠建立資料表之間的關聯性,然後使用相關資料表來查閱或篩選相關資料。 您可以使用 Power Pivot、Data Analysis Expressions (DAX) 隨附的公式語言,從資料表中擷取相關值。 DAX 使用關聯式模型,因此可以輕鬆且準確地擷取另一個資料表或資料行中的相關值或對應值。 如果您熟悉 Excel 中的 VLOOKUP,Power Pivot 中的這項功能與此類似,但更容易執行。
您可以建立公式,將查閱做為計算結果欄的一部分,或做為量值的一部分,以便在樞紐分析表或樞紐分析圖中使用。 如需詳細資訊,請參閱下列主題:
本節說明提供用於查閱的 DAX 函數,以及一些關於如何使用這些函數的範例。
注意
根據您想要使用的查閱作業或查閱公式的類型而定,您可能需要先建立資料表之間的關聯。
了解查閱函數
在目前資料表只有某種識別碼,但您需要的資料 (例如產品價格、名稱或) 儲存在相關資料表中的其他詳細值的情況下,從另一個資料表查詢相符或相關資料的功能特別有用。 當另一個資料表中有多個與目前資料列或目前值相關的資料列時,這也相當實用。 例如,您可以輕鬆檢索與特定地區、商店或銷售人員相關的所有銷售額。
不同於 Excel 的查閱函數,例如以陣列為基礎的 VLOOKUP 或取得多個相符值中的第一個的 LOOKUP,DAX 會遵循以索引鍵聯結的資料表之間的現有關聯性來取得完全相符的單一相關值。 DAX 也可以擷取與目前記錄相關的記錄表格。
注意
如果您熟悉關聯式資料庫,可以將 Power Pivot 中的查閱視為類似於 Transact-SQL 中的巢狀 subselect 陳述式。
擷取單一相關值
RELATED 函數會從另一個資料表傳回與目前資料表中的目前值相關的單一值。 您可以指定包含所需資料的資料行,函數會遵循資料表之間的現有關聯性,從相關資料表中的指定資料行擷取值。 在某些情況下,函數必須遵循關聯鏈才能擷取資料。
例如,假設您在 Excel 中有一份今天的出貨清單。 但是,該清單僅包含員工 ID 號碼、訂單 ID 號碼和寄件人 ID 號碼,因此報告難以閱讀。 若要取得您想要的額外資訊,您可以將該清單轉換成 Power Pivot 連結資料表,然後建立與 [員工] 和 [轉銷商] 資料表的關聯性,將 EmployeeID 與 EmployeeKey 欄位進行比對,以及將 ResellerID 與 ResellerKey 欄位進行比對。
若要在連結資料表中顯示查閱資訊,您可以使用下列公式新增兩個新的計算結果欄:
= 相關 ('Employees'[EmployeeName])
= 相關 ('轉銷商'[CompanyName])
查閱前的今日出貨量
| 訂單編號 | EmployeeID | ResellerID |
|---|---|---|
| 100314 | 230 | 445 |
| 100315 | 15 | 445 |
| 100316 | 76 | 108 |
員工資料表
| EmployeeID | 員工 | 轉銷商 |
|---|---|---|
| 230 | Kuppa Vamsi | 模組化循環系統 |
| 15 | 皮拉爾·阿克曼 | 模組化循環系統 |
| 76 | 金·拉爾斯 | 相關自行車 |
含查閱的今日出貨量
| 訂單編號 | EmployeeID | ResellerID | 員工 | 轉銷商 |
|---|---|---|---|---|
| 100314 | 230 | 445 | Kuppa Vamsi | 模組化循環系統 |
| 100315 | 15 | 445 | 皮拉爾·阿克曼 | 模組化循環系統 |
| 100316 | 76 | 108 | 金·拉爾斯 | 相關自行車 |
此函數會使用連結資料表與 [員工和轉銷商] 資料表之間的關聯性,來取得報表中每一列的正確名稱。 您也可以使用相關的值進行計算。 如需詳細資訊與範例,請參閱 RELATED 函數。
擷取相關值清單
RELATEDTABLE 函數會遵循現有的關聯,並傳回包含指定資料表中所有相符資料列的資料表。 例如,假設您想知道每個經銷商今年下了多少訂單。 您可以在 [轉銷商] 資料表中建立包含下列公式的新計算資料行,此資料行會在 ResellerSales_USD 資料表中查詢每個轉銷商的記錄,並計算每個轉銷商所下單筆訂單的數量。
=COUNTROWS (RELATEDTABLE (ResellerSales_USD) )
在此公式中,RELATEDTABLE 函數會先取得目前資料表中每個轉銷商的 ResellerKey 值。 (您不需要在公式中的任何位置指定識別碼欄,因為 Power Pivot 會使用資料表之間的現有關聯。) 然後,RELATEDTABLE 函數從ResellerSales_USD資料表中取得與每個轉銷商相關的所有資料列,然後計算資料列。 如果兩個資料表之間沒有直接或間接) (關係,則您會從ResellerSales_USD資料表取得所有資料列。
針對範例資料庫中的經銷商 Modular Cycle Systems,銷售資料表中有四個訂單,因此函數會傳回 4。 針對 Associated Bikes,經銷商沒有銷售額,因此函數會傳回空白。
| 轉銷商 | 此轉銷商的銷售資料表中的記錄 |
|---|---|
| 模組化循環系統 | 轉銷商識別碼 |
| 445 | |
| 445 | |
| 445 | |
| 445 | |
| 轉銷商識別碼 | |
| 相關自行車 |
注意
由於 RELATEDTABLE 函數會傳回一個資料表,而非單一值,因此必須將其當做對資料表執行運算之函數的引數使用。 如需詳細資訊,請參閱 RELATEDTABLE 函數。