Power Pivot 最強大的功能之一是能夠建立資料表間的關聯,並利用相關資料表來查找或篩選相關資料。 你可以使用Power Pivot、Data Analysis Expressions (DAX) 提供的公式語言,從表格中取得相關值。 DAX 採用關聯模型,因此能輕鬆且準確地從其他表格或欄位中檢索相關或對應的值。 如果你熟悉 Excel 中的 VLOOKUP,Power Pivot 的功能類似,但實作起來容易得多。
你可以建立公式,作為計算欄位的一部分,或作為度量的一部分,用於樞紐分析表或樞紐分析圖。 如需詳細資訊,請參閱下列主題:
本節說明提供查詢的 DAX 函式,並附上一些使用這些函式的範例。
注意
根據你想使用的查找操作或查找公式,你可能需要先建立表格之間的關係。
理解查找函數
能夠從其他表格查詢匹配或相關資料,特別適用於目前表格只有某種識別碼,但你需要的資料,例如產品價格、名稱或其他詳細值, () 儲存在相關資料表中。 當另一張資料表中有多列與當前列或當前值相關時,此方法也很有用。 例如,你可以輕鬆取得與特定地區、商店或銷售人員相關的所有銷售紀錄。
與基於陣列的 Excel 查找函式(如 VLOOKUP)或 LOOKUP 不同,後者會取得多個匹配值中的第一個,DAX 則依據由鍵連接的表格間既有關聯,取得完全匹配的單一相關值。 DAX 也能擷取與目前記錄相關的記錄表。
注意
如果你熟悉關聯式資料庫,可以把 Power Pivot 中的查詢想像成 Transact-SQL 中的巢狀子選擇語句。
擷取單一相關值
RELATED 函式會回傳與當前資料表中與當前值相關的另一個資料表的單一值。 你指定包含你想要資料的欄位,函式會依照資料表間的關係,從相關資料表中指定的欄位取得該值。 在某些情況下,函式必須沿著一系列關係鏈來取得資料。
舉例來說,假設你有一份Excel裡的今天出貨清單。 然而,該清單僅包含員工編號、訂單編號和寄件人編號,使報告難以閱讀。 要獲得你想要的額外資訊,你可以把那個清單轉成 Power Pivot 連結表,然後建立與 Employee 和 Reseller 資料表的關聯,將 EmployeeID 與 EmployeeKey 欄位,ResellerID 與 ResellerKey 欄位相匹配。
為了在你連結的表格中顯示查詢資訊,你需要新增兩個計算欄位,公式如下:
= 相關 ('Employees'[EmployeeName])
= 相關 (『經銷商』[公司名稱])
查詢前今日出貨量
| 訂單編號 | 員工識別碼 | 轉售商ID |
|---|---|---|
| 100314 | 230 | 445 |
| 100315 | 15 | 445 |
| 100316 | 76 | 108 |
員工資料表
| 員工識別碼 | 員工 | 經銷商 |
|---|---|---|
| 230 | 庫帕·瓦姆西 | 模組化循環系統 |
| 15 | 皮拉爾·阿克曼 | 模組化循環系統 |
| 76 | 金·拉爾斯 | Associated Bikes |
今天的出貨與查詢
| 訂單編號 | 員工識別碼 | 轉售商ID | 員工 | 經銷商 |
|---|---|---|---|---|
| 100314 | 230 | 445 | 庫帕·瓦姆西 | 模組化循環系統 |
| 100315 | 15 | 445 | 皮拉爾·阿克曼 | 模組化循環系統 |
| 100316 | 76 | 108 | 金·拉爾斯 | Associated Bikes |
該函式利用連結資料表與員工及經銷商資料表之間的關係,取得報告中每一列的正確名稱。 你也可以用相關的數值來計算。 欲了解更多資訊與範例,請參閱 相關函數。
檢索相關值清單
RELATEDTABLE 函式會跟隨現有的關係,並回傳包含指定資料表中所有相符資料列的資料表。 舉例來說,假設你想知道每個經銷商今年下了多少訂單。 你可以在轉售商表中建立一個新的計算欄位,包含以下公式,該公式會查詢ResellerSales_USD表中每個經銷商的紀錄,並計算每個經銷商下單的訂單數量。
=COUNTROWS (相關表 (ResellerSales_USD) )
在此公式中,RELATEDTABLE 函式首先取得目前表格中每個經銷商的 ResellerKey 值。 (你不需要在公式中指定 ID 欄位,因為 Power Pivot 會利用這些資料表之間的既有關係。) RELATEDTABLE 函式接著會從 ResellerSales_USD 資料表中取得與每個經銷商相關的所有列,並計算列數。 如果兩個資料表之間沒有直接或間接) (關係,那麼你就會得到ResellerSales_USD資料表的所有列。
在我們範例資料庫中的經銷商 Modular Cycle Systems 中,銷售表中有四個訂單,因此函數回傳 4 個。 對於 Associated Bikes,轉售商沒有銷售,函式會回傳空白。
| 經銷商 | 本經銷商銷售表中的紀錄 |
|---|---|
| 模組化循環系統 | 經銷商識別碼 |
| 445 | |
| 445 | |
| 445 | |
| 445 | |
| 經銷商識別碼 | |
| Associated Bikes |
注意
由於 RELATEDTABLE 函式回傳的是一張資料表,而非單一值,因此必須作為對資料表執行操作的函式的參數。 更多資訊請參見 RELATEDTABLE 函式。